|
@@ -34,6 +34,9 @@ int Store_bos_last_index = 0;
|
|
|
|
|
|
|
|
bool choch = false;
|
|
bool choch = false;
|
|
|
int index = 0;
|
|
int index = 0;
|
|
|
|
|
+
|
|
|
|
|
+int arrow_code_high = 108;
|
|
|
|
|
+int arrow_code_low = 108;
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
//| Expert initialization function |
|
|
//| Expert initialization function |
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
@@ -44,6 +47,7 @@ void Bos(int i)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,high_index);
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,high_index);
|
|
|
|
|
|
|
|
high1 = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
high1 = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
@@ -51,8 +55,19 @@ void Bos(int i)
|
|
|
|
|
|
|
|
if(high1 > high)
|
|
if(high1 > high)
|
|
|
{
|
|
{
|
|
|
|
|
+
|
|
|
|
|
+ if(object_find("high") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"high");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
high = high1;
|
|
high = high1;
|
|
|
|
|
|
|
|
|
|
+ ObjectCreate(0,"high",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),high,iTime(Symbol(),PERIOD_CURRENT,0),high);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_COLOR,clrBlue);
|
|
|
|
|
+
|
|
|
ObjectCreate(0,"line1"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),high);
|
|
ObjectCreate(0,"line1"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),high);
|
|
|
ObjectSetString(0,"line1"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"bos");
|
|
ObjectSetString(0,"line1"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"bos");
|
|
|
|
|
|
|
@@ -92,12 +107,19 @@ void Bos(int i)
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if(object_find("low") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"low");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ ObjectCreate(0,"low",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,index_of_low),low,iTime(Symbol(),PERIOD_CURRENT,0),low);
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_COLOR,clrRed);
|
|
|
bearish_found = false;
|
|
bearish_found = false;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- Print(" high price is ", high);
|
|
|
|
|
- Print("low price is ", low);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
high_index = i;
|
|
high_index = i;
|
|
@@ -116,16 +138,29 @@ void Bos(int i)
|
|
|
|
|
|
|
|
low1 = iLow(Symbol(),PERIOD_CURRENT,i);
|
|
low1 = iLow(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
if(low1 < low)
|
|
if(low1 < low)
|
|
|
{
|
|
{
|
|
|
- Store_bos_last_index = i;
|
|
|
|
|
|
|
|
|
|
|
|
+ if(object_find("low") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"low");
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
low = low1;
|
|
low = low1;
|
|
|
|
|
+ ObjectCreate(0,"low",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),low,iTime(Symbol(),PERIOD_CURRENT,0),low);
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_COLOR,clrRed);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
ObjectCreate(0,"line2"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),low);
|
|
ObjectCreate(0,"line2"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),low);
|
|
|
ObjectSetString(0,"line2"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"bos");
|
|
ObjectSetString(0,"line2"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"bos");
|
|
|
|
|
+
|
|
|
|
|
+ Store_bos_last_index = i;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
int count = (low_index-1) - i;
|
|
int count = (low_index-1) - i;
|
|
|
|
|
|
|
|
|
|
|
|
@@ -160,11 +195,18 @@ void Bos(int i)
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if(object_find("high") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"high");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ ObjectCreate(0,"high",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,index_of_high),high,iTime(Symbol(),PERIOD_CURRENT,0),high);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_COLOR,clrBlue);
|
|
|
bullish_found = false;
|
|
bullish_found = false;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- Print("low price is ", low);
|
|
|
|
|
- Print(" high price is ", high);
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -198,7 +240,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i)
|
|
|
|
|
|
|
|
if(bearish_found == true)
|
|
if(bearish_found == true)
|
|
|
{
|
|
{
|
|
|
- Print("index xi is ", ind);
|
|
|
|
|
|
|
+
|
|
|
ObjectCreate(0,"line10"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iHigh(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,ind));
|
|
ObjectCreate(0,"line10"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iHigh(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,ind));
|
|
|
ObjectCreate(0,"line11"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iLow(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,ind));
|
|
ObjectCreate(0,"line11"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iLow(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,ind));
|
|
|
|
|
|
|
@@ -224,7 +266,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i)
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
- diff++;
|
|
|
|
|
|
|
+ diff++;
|
|
|
|
|
|
|
|
for(int j=Store_bos_last_index+1; j < iBars(Symbol(),PERIOD_CURRENT); j++)
|
|
for(int j=Store_bos_last_index+1; j < iBars(Symbol(),PERIOD_CURRENT); j++)
|
|
|
{
|
|
{
|
|
@@ -237,10 +279,10 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- Print(diff);
|
|
|
|
|
|
|
+// Print(diff);
|
|
|
if(bullish_found == true)
|
|
if(bullish_found == true)
|
|
|
{
|
|
{
|
|
|
- Print("index xi is ", ind);
|
|
|
|
|
|
|
+
|
|
|
ObjectCreate(0,"line14"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iHigh(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,ind));
|
|
ObjectCreate(0,"line14"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iHigh(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,ind));
|
|
|
ObjectCreate(0,"line15"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iLow(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,ind));
|
|
ObjectCreate(0,"line15"+iTime(Symbol(),PERIOD_CURRENT,ind),OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,ind),iLow(Symbol(),PERIOD_CURRENT,ind),iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,ind));
|
|
|
|
|
|
|
@@ -284,6 +326,18 @@ void choch(int i)
|
|
|
Entry_Action_1_up(Store_bos_last_index,i);
|
|
Entry_Action_1_up(Store_bos_last_index,i);
|
|
|
|
|
|
|
|
low = iLow(Symbol(),PERIOD_CURRENT,i);
|
|
low = iLow(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
+ low_index = i;
|
|
|
|
|
+
|
|
|
|
|
+ if(object_find("low") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"low");
|
|
|
|
|
+ }
|
|
|
|
|
+ ObjectCreate(0,"low",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),low,iTime(Symbol(),PERIOD_CURRENT,0),low);
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_COLOR,clrRed);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
Print("low update due to choch : ", low);
|
|
Print("low update due to choch : ", low);
|
|
|
trend = "downtrend";
|
|
trend = "downtrend";
|
|
|
Print("choch at uptrend index --- ", iTime(Symbol(),PERIOD_CURRENT,i));
|
|
Print("choch at uptrend index --- ", iTime(Symbol(),PERIOD_CURRENT,i));
|
|
@@ -319,6 +373,16 @@ void choch(int i)
|
|
|
|
|
|
|
|
|
|
|
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
+ high_index = i;
|
|
|
|
|
+
|
|
|
|
|
+ if(object_find("high") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"high");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ ObjectCreate(0,"high",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),high,iTime(Symbol(),PERIOD_CURRENT,0),high);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_COLOR,clrBlue);
|
|
|
trend = "uptrend";
|
|
trend = "uptrend";
|
|
|
|
|
|
|
|
Print("high is update due to choch : ", high);
|
|
Print("high is update due to choch : ", high);
|
|
@@ -346,7 +410,20 @@ void third_Condition(int i)
|
|
|
ObjectCreate(0,"line5"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,i));
|
|
ObjectCreate(0,"line5"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),iLow(Symbol(),PERIOD_CURRENT,i));
|
|
|
ObjectSetString(0,"line5"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
|
|
ObjectSetString(0,"line5"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
|
|
|
low = low2;
|
|
low = low2;
|
|
|
- Print("low update due to third condition",low);
|
|
|
|
|
|
|
+ //low_index = i;
|
|
|
|
|
+ if(object_find("low") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Print("object deleted ");
|
|
|
|
|
+ ObjectDelete(0,"low");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ ObjectCreate(0,"low",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),low,iTime(Symbol(),PERIOD_CURRENT,0),low);
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+
|
|
|
|
|
+ ObjectSetInteger(0,"low",OBJPROP_COLOR,clrRed);
|
|
|
|
|
+
|
|
|
|
|
+ Print("low update due to third condition",low," time of the candle is ",iTime(Symbol(),PERIOD_CURRENT,i));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -358,7 +435,17 @@ void third_Condition(int i)
|
|
|
{
|
|
{
|
|
|
ObjectCreate(0,"line6"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,i));
|
|
ObjectCreate(0,"line6"+iTime(Symbol(),PERIOD_CURRENT,i),OBJ_TEXT,0,iTime(Symbol(),PERIOD_CURRENT,i),iHigh(Symbol(),PERIOD_CURRENT,i));
|
|
|
ObjectSetString(0,"line6"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
|
|
ObjectSetString(0,"line6"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
|
|
|
|
|
+
|
|
|
high = high2;
|
|
high = high2;
|
|
|
|
|
+ //high_index = i;
|
|
|
|
|
+ if(object_find("high") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"high");
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ ObjectCreate(0,"high",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,i),high,iTime(Symbol(),PERIOD_CURRENT,0),high);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
+ ObjectSetInteger(0,"high",OBJPROP_COLOR,clrBlue);
|
|
|
Print("high update due to third condition",high);
|
|
Print("high update due to third condition",high);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -376,12 +463,14 @@ void foo(int value)
|
|
|
//Print("hi");
|
|
//Print("hi");
|
|
|
//if(l < 2)
|
|
//if(l < 2)
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
Bos(i);
|
|
Bos(i);
|
|
|
choch(i);
|
|
choch(i);
|
|
|
|
|
+
|
|
|
third_Condition(i);
|
|
third_Condition(i);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
l++;
|
|
l++;
|
|
|
|
|
|
|
|
}
|
|
}
|