ソースを参照

Ticket # 1483

Add trends line on latest high and low and updates accordingly as new high and low found
AhtashamShahzad3 2 年 前
コミット
daa54997db
2 ファイル変更101 行追加12 行削除
  1. BIN
      BOS_CHOCH.ex5
  2. 101 12
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 101 - 12
BOS_CHOCH.mq5

@@ -34,6 +34,9 @@ int Store_bos_last_index = 0;
 
 bool choch = false;
 int index = 0;
+
+int arrow_code_high = 108;
+int arrow_code_low  = 108;
 //+------------------------------------------------------------------+
 //| Expert initialization function                                   |
 //+------------------------------------------------------------------+
@@ -44,6 +47,7 @@ void Bos(int i)
      {
 
 
+
       high = iHigh(Symbol(),PERIOD_CURRENT,high_index);
 
       high1 = iHigh(Symbol(),PERIOD_CURRENT,i);
@@ -51,8 +55,19 @@ void Bos(int i)
 
       if(high1 > high)
         {
+
+         if(object_find("high") > 0)
+           {
+            ObjectDelete(0,"high");
+
+           }
+
          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);
          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;
 
            }
 
-         Print(" high price is ", high);
-         Print("low price is ", low);
 
 
          high_index = i;
@@ -116,16 +138,29 @@ void Bos(int i)
 
       low1 = iLow(Symbol(),PERIOD_CURRENT,i);
 
-
       if(low1 < low)
         {
-         Store_bos_last_index = i;
 
+         if(object_find("low") > 0)
+           {
+            ObjectDelete(0,"low");
 
+           }
          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);
          ObjectSetString(0,"line2"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"bos");
+
+         Store_bos_last_index = 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;
 
            }
-         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)
      {
-      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,"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)
   {
-  diff++;
+   diff++;
 
    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)
      {
-      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,"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);
 
          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);
          trend = "downtrend";
          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_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";
 
          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));
          ObjectSetString(0,"line5"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
          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));
          ObjectSetString(0,"line6"+iTime(Symbol(),PERIOD_CURRENT,i), OBJPROP_TEXT,"3_C");
+
          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);
         }
      }
@@ -376,12 +463,14 @@ void foo(int value)
       //Print("hi");
       //if(l < 2)
         {
-
          Bos(i);
          choch(i);
+
          third_Condition(i);
 
 
+
+
          l++;
 
         }