Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
RosyPipsIndicator
#property link "lightsites@gmail.com"
/**
Louis Christian Stoltz
_____
/ ___ \
/ / _ \ \
/( /( /(_)\ )\ )\
( \ \ ___ / / )
( \ _____ / )
/( )\
| \ / |
| \ _______ / |
\ / \ / \ /
\/ | | \/
| |
| |
|_|
**/
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Yellow
#property indicator_color3 Yellow
#property indicator_color4 Yellow
/**
Extern variables
**/
extern double sar1 = 0.002;
extern double sar2 = 0.2;
extern int profit = 30; //In Pips
extern int loss = 100; //In Pips
/**
MAX Spread, Important for accurate trading.
**/
extern double spread = 5; //In Pips
/**
Star
**/
extern int Star_Body_Length = 15;
/**
Start Date
**/
extern string year = "2014";
extern string month = "01";
extern string day = "01";
color Color_Text = White;
/**
Arrows
**/
double upArrow[];
double downArrow[];
double sArrow[];
double bArrow[];
int init() {
ObjectsDeleteAll(0, OBJ_TEXT);
ObjectsDeleteAll(0, OBJ_TREND);
ObjectsDeleteAll(0, DRAW_ARROW);
SetIndexStyle(0,DRAW_ARROW, EMPTY);
SetIndexArrow(0,234);
SetIndexBuffer(0, downArrow);
SetIndexStyle(1,DRAW_ARROW, EMPTY);
SetIndexArrow(1,233);
SetIndexBuffer(1, upArrow);
SetIndexStyle(2,DRAW_ARROW, EMPTY);
SetIndexArrow(2,231);
SetIndexBuffer(2, bArrow);
SetIndexStyle(3,DRAW_ARROW, EMPTY);
SetIndexArrow(3,231);
SetIndexBuffer(3, sArrow);
return(0);
}
int deinit() {
ObjectsDeleteAll(0, OBJ_TEXT);
ObjectsDeleteAll(0, OBJ_TREND);
ObjectsDeleteAll(0, DRAW_ARROW);
return(0);
}
int start(){
datetime back_date = StrToTime(year+"."+month+"."+day+" 00:00");
int counter, sc,bc, sh=0, bh=0;
static datetime prevtime = 0;
int shift;
int shift1;
int h=0,n=0;
int lcounter=0, scounter=0;
double swon=0 ,slossed=0,lwon=0, llossed=0, ll=0, ss=0, S=0;
if(prevtime == Time[0]) {
return(0);
}
prevtime = Time[0];
for (shift = 0; shift < Bars; shift++) {
if(iTime(Symbol(),Period(),shift)<back_date)break;
h++;
counter=shift;
shift1 = shift + 1;
/**
Signal prediction
**/
downArrow[shift1] = 0;
upArrow[shift1] = 0;
double end;
double setprofit = profit+spread;
double setloss = loss+spread;
if(ObjectGet(GetName("line",shift1), OBJPROP_TIME1) > 0)continue;
//Buy Signal
if(BUYSIGNAL(shift1) == TRUE){
n=1;
while(n<1000) {
if(shift-n-1 < 0)break;
end = Open[shift-n-1];
bArrow[shift-n] = 0;
if(Low[shift-n] == 0)break;
if(shift == 0)break;
if ( Close[shift-n] - Close[shift1] >= setprofit*Point )
{
S = end - (Open[shift1-1]+spread*Point);
S = S/Point;
lwon = lwon+S;
bArrow[shift-n] = Close[shift-n];
ObjectDelete(GetName("line",shift1));
ObjectCreate(GetName("line",shift1), OBJ_TREND, 0, Time[shift1], Close[shift1], Time[shift-n], Close[shift-n]);
SetObject(GetName("line",shift1), Time[shift1], Close[shift1], Time[shift-n], Close[shift-n], White);
ObjectDelete(GetName("Star",shift1));
ObjectCreate(GetName("Star",shift1), OBJ_TEXT, 0, Time[shift-n], Low[shift-n] - 100*Point);
ObjectSetText(GetName("Star",shift1), DoubleToStr(S,2), 8, "Times New Roman", Color_Text);
break;
}
if( Close[shift1] - Close[shift-n] >= setloss*Point )
{
S = ( Open[shift1-1]+spread*Point ) - end;
S = S/Point;
llossed = llossed+S;
bArrow[shift-n] = Close[shift-n];
ObjectDelete(GetName("line",shift1));
ObjectCreate(GetName("line",shift1), OBJ_TREND, 0, Time[shift1], Close[shift1], Time[shift-n], Close[shift-n]);
SetObject(GetName("line",shift1), Time[shift1], Close[shift1], Time[shift-n], Close[shift-n], White);
ObjectDelete(GetName("Star",shift1));
ObjectCreate(GetName("Star",shift1), OBJ_TEXT, 0, Time[shift-n], Low[shift-n] - 100*Point);
ObjectSetText(GetName("Star",shift1), "-"+DoubleToStr(S,2), 8, "Times New Roman", Color_Text);
ll++;
break;
}
n++;
}
lcounter++;
upArrow[shift1] = Close[shift1];
if(bh != 0)bc = shift-bh;
bh = shift;
ObjectCreate(GetName("Star",shift), OBJ_TEXT, 0, Time[shift1], Low[shift1] - 100*Point);
ObjectSetText(GetName("Star",shift), "B", 8, "Times New Roman", Color_Text);
}
//Sell Signal
if(SELLSIGNAL(shift1) == TRUE){
n=1;
while(n<1000) {
if(shift-n-1 < 0)break;
end = Open[shift-n-1];
if(end == 0)end = Open[shift-n-1];
sArrow[shift-n] = 0;
if(Low[shift-n] == 0)break;
if(shift == 0)break;
if( Close[shift1] - Close[shift-n] >= setprofit*Point )
{
S = ( Open[shift1-1]-spread*Point ) - end;
S = S/Point;
swon = swon+S;
sArrow[shift-n] = Close[shift-n];
ObjectDelete(GetName("line",shift1));
ObjectCreate(GetName("line",shift1), OBJ_TREND, 0, Time[shift1], Close[shift1], Time[shift-n], Close[shift-n]);
SetObject(GetName("line",shift1), Time[shift1], Close[shift1], Time[shift-n], Close[shift-n], White);
ObjectDelete(GetName("Star",shift1));
ObjectCreate(GetName("Star",shift1), OBJ_TEXT, 0, Time[shift-n], Low[shift-n] - 100*Point);
ObjectSetText(GetName("Star",shift1), DoubleToStr(S,2), 8, "Times New Roman", Color_Text);
break;
}
if ( Close[shift-n] - Close[shift1] >= setloss*Point )
{
S = end - ( Open[shift1-1]-spread*Point );
S = S/Point;
slossed = slossed+S;
sArrow[shift-n] = Close[shift-n];
ObjectDelete(GetName("line",shift1));
ObjectCreate(GetName("line",shift1), OBJ_TREND, 0, Time[shift1], Close[shift1], Time[shift-n], Close[shift-n]);
SetObject(GetName("line",shift1), Time[shift1], Close[shift1], Time[shift-n], Close[shift-n], White);
ObjectDelete(GetName("Star",shift1));
ObjectCreate(GetName("Star",shift1), OBJ_TEXT, 0, Time[shift-n], Low[shift-n] - 100*Point);
ObjectSetText(GetName("Star",shift1), "-"+DoubleToStr(S,2), 8, "Times New Roman", Color_Text);
ss++;
break;
}
n++;
}
scounter++;
downArrow[shift1] = Close[shift1];
if(sh != 0)sc = shift-sh;
sh = shift;
ObjectCreate(GetName("Star",shift), OBJ_TEXT, 0, Time[shift1], Low[shift1] - 100*Point);
ObjectSetText(GetName("Star",shift), "S", 8, "Times New Roman", Color_Text);
}
} // End of for loop
/**
Comments
**/
double total = (swon-slossed)+(lwon-llossed);
if(total == 0)return(0);
Comment("\n","Stats from ", TimeToStr(iTime(Symbol(),Period(),h-1),TIME_DATE|TIME_SECONDS),
"\n", "Short Trades : ",scounter, " (", ss , ")",
"\n", "pips : ",DoubleToStr(swon,2),
"\n", "loss : ",DoubleToStr(slossed,2),
"\n", "total: ",DoubleToStr(swon-slossed,2),
"\n",
"\n", "Long Trades : ",lcounter, " (", ll , ")",
"\n", "pips : ", DoubleToStr(lwon,2),
"\n", "loss : ", DoubleToStr(llossed,2),
"\n", "total : ", DoubleToStr(lwon-llossed,2),
"\n",
"\n", "TOTAL : ", DoubleToStr(total,2),
"\n","\n","Please donate to paypal lightsites@gmail.com");
return(0);
}
string GetName(string aName,int shift)
{
return(aName+TimeToStr(Time[shift]));
}
void SetObject(string name,datetime T1,double P1,datetime T2,double P2,color clr)
{
ObjectCreate(name, OBJ_TREND, 0, T1, P1, T2, P2);
ObjectSet(name, OBJPROP_COLOR, clr);
ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
ObjectSet(name, OBJPROP_RAY, FALSE);
}
/**
BUYSIGNAL
**/
bool BUYSIGNAL(int s) {
double star;
int n=0, shift=s-1,z=0,x=0;
while(n<11) {
if(Open[shift+n]>Close[shift+n]){
star = Open[shift+n]-Close[shift+n];
}
else {
star = Close[shift+n]-Open[shift+n];
}
if( star < (Star_Body_Length*Point) )z=1;
n++;
}
n=0;
while(n<5) {
if( iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,shift+n) < 25 )x=1;
n++;
}
if ((iSAR(NULL, 0,sar1,sar2, s)<iClose(NULL,0,s)) && (iSAR(NULL, 0,sar1,sar2, s+1)>iOpen(NULL,0, s+1)))
{
return(TRUE);
}
return(FALSE);
}
/**
SELLSIGNAL
**/
bool SELLSIGNAL(int s) {
double star;
int n=0, shift=s-1,z=0,x=0;
while(n<11) {
if(Open[shift+n]>Close[shift+n]){
star = Open[shift+n]-Close[shift+n];
}
else {
star = Close[shift+n]-Open[shift+n];
}
if( star < (Star_Body_Length*Point) )z=1;
n++;
}
n=0;
while(n<5) {
if( iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,shift+n) > 70 )x=1;
n++;
}
if ((iSAR(NULL, 0,sar1,sar2, s)>iClose(NULL,0,s))&&(iSAR(NULL, 0,sar1,sar2, s+1)<iOpen(NULL,0,s+1))) //Signal Sell
{
return(TRUE);
}
return(FALSE);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---