|
@@ -299,16 +299,33 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-//Print("bullish found at index ",j);
|
|
|
|
|
-
|
|
|
|
|
ind = Store_bos_last_index +1; // reversal candle index
|
|
ind = Store_bos_last_index +1; // reversal candle index
|
|
|
reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
|
|
reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
|
|
|
|
|
+ bool addtional_condition = false;
|
|
|
|
|
+
|
|
|
|
|
+ for(int j=Store_bos_last_index-1; j>i+2; j--)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
|
|
|
|
|
+ {
|
|
|
|
|
+ if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
|
|
+ {
|
|
|
|
|
+ addtional_condition = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
|
|
|
|
|
+ {
|
|
|
|
|
+ if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
|
|
+ {
|
|
|
|
|
+ addtional_condition = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
Print("condition satisfied in downtrend buy trade : ",check_values_less_than_choch_high(ind,i));
|
|
Print("condition satisfied in downtrend buy trade : ",check_values_less_than_choch_high(ind,i));
|
|
|
|
|
|
|
|
- if(check_values_less_than_choch_high(ind,i) == true)
|
|
|
|
|
|
|
+ if(check_values_less_than_choch_high(ind,i) == true && addtional_condition == false)
|
|
|
{
|
|
{
|
|
|
if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
|
|
if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
{
|
|
{
|
|
@@ -358,9 +375,9 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
|
|
|
|
|
|
|
|
Print("condition satisfied in downtrend buy trade : ",check_values_less_than_choch_high1(ind,i));
|
|
Print("condition satisfied in downtrend buy trade : ",check_values_less_than_choch_high1(ind,i));
|
|
|
|
|
|
|
|
- if(check_values_less_than_choch_high(ind,i) == true)
|
|
|
|
|
|
|
+//if(check_values_less_than_choch_high(ind,i) == true)
|
|
|
{
|
|
{
|
|
|
- if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
|
|
|
|
+ // if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
{
|
|
{
|
|
|
signal = "buy";
|
|
signal = "buy";
|
|
|
time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
@@ -400,12 +417,31 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
|
|
|
ind = Store_bos_last_index +1; // reversal candle index
|
|
ind = Store_bos_last_index +1; // reversal candle index
|
|
|
reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
|
|
reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
|
|
|
|
|
|
|
|
|
|
+ bool addtional_condition = false;
|
|
|
|
|
|
|
|
|
|
+ for(int j=Store_bos_last_index-1; j>i+2; j--)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
|
|
|
|
|
+ {
|
|
|
|
|
+ if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
|
|
+ {
|
|
|
|
|
+ addtional_condition = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
|
|
|
|
|
+ {
|
|
|
|
|
+ if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
|
|
+ {
|
|
|
|
|
+ addtional_condition = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
Print("condition satisfied in uptrend sell trade : ",check_values_less_than_choch_low(ind,i));
|
|
Print("condition satisfied in uptrend sell trade : ",check_values_less_than_choch_low(ind,i));
|
|
|
|
|
|
|
|
- if(check_values_less_than_choch_low(ind,i) == true)
|
|
|
|
|
|
|
+ if(check_values_less_than_choch_low(ind,i) == true && addtional_condition == false)
|
|
|
{
|
|
{
|
|
|
if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
|
|
if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
{
|
|
{
|
|
@@ -454,9 +490,9 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
|
|
|
|
|
|
|
|
Print("condition satisfied in uptrend sell trade : ",check_values_less_than_choch_low(ind,i));
|
|
Print("condition satisfied in uptrend sell trade : ",check_values_less_than_choch_low(ind,i));
|
|
|
|
|
|
|
|
- if(check_values_less_than_choch_low1(ind,i) == true)
|
|
|
|
|
|
|
+// if(check_values_less_than_choch_low1(ind,i) == true)
|
|
|
{
|
|
{
|
|
|
- if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
|
|
|
|
+ // if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
|
|
|
{
|
|
{
|
|
|
signal = "sell";
|
|
signal = "sell";
|
|
|
time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
@@ -608,20 +644,12 @@ void choch(int i)
|
|
|
HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
|
LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
|
|
|
|
|
|
- Print("from where you start ",chock_index);
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
|
ObjectDelete(0,"target line");
|
|
ObjectDelete(0,"target line");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
|
|
|
- // {
|
|
|
|
|
- // Print("time at which error accur ",iTime(Symbol(),PERIOD_CURRENT,i));
|
|
|
|
|
- // Print("object error ",GetLastError());
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
|
{
|
|
{
|
|
|
Print("object created from uptrend to downtrend ");
|
|
Print("object created from uptrend to downtrend ");
|
|
@@ -643,7 +671,6 @@ void choch(int i)
|
|
|
choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
|
|
|
int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
- Print("from where you end ",chock_index1);
|
|
|
|
|
|
|
|
|
|
bool condition_not_match = false;
|
|
bool condition_not_match = false;
|
|
|
for(int p=chock_index - 2 ; p > chock_index1; p--)
|
|
for(int p=chock_index - 2 ; p > chock_index1; p--)
|
|
@@ -659,7 +686,7 @@ void choch(int i)
|
|
|
HIGH = 0.0;
|
|
HIGH = 0.0;
|
|
|
LOW = 0.0;
|
|
LOW = 0.0;
|
|
|
tp_date_time_sell = 0.0;
|
|
tp_date_time_sell = 0.0;
|
|
|
- Print("TArget line deleted");
|
|
|
|
|
|
|
+ Print("Target line deleted in choch");
|
|
|
condition_not_match = false;
|
|
condition_not_match = false;
|
|
|
|
|
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
@@ -696,41 +723,49 @@ void choch(int i)
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 2;
|
|
|
|
|
|
|
+ edate.min = edate.min + 1;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M5:
|
|
case PERIOD_M5:
|
|
|
current_time_frame_string = "5 minutes";
|
|
current_time_frame_string = "5 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 10;
|
|
|
|
|
|
|
+ edate.min = edate.min + 5;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M15:
|
|
case PERIOD_M15:
|
|
|
current_time_frame_string = "15 minutes";
|
|
current_time_frame_string = "15 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 30;
|
|
|
|
|
|
|
+ edate.min = edate.min + 15;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M30:
|
|
case PERIOD_M30:
|
|
|
current_time_frame_string = "30 minutes";
|
|
current_time_frame_string = "30 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 60;
|
|
|
|
|
|
|
+ edate.min = edate.min + 30;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
|
|
+
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_H1:
|
|
case PERIOD_H1:
|
|
|
current_time_frame_string = "1 hour";
|
|
current_time_frame_string = "1 hour";
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = edate.hour + 1;
|
|
edate.hour = edate.hour + 1;
|
|
@@ -739,15 +774,21 @@ void choch(int i)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
time_to_place_trade = StructToTime(edate);
|
|
time_to_place_trade = StructToTime(edate);
|
|
|
-
|
|
|
|
|
- // Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
|
|
|
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
|
|
|
|
|
- //Print("choch_index_time ",choch_index_time);
|
|
|
|
|
- //Print("reversal_bar_time ",reversal_bar_time);
|
|
|
|
|
- //Print("time_of_candle",time_of_candle);
|
|
|
|
|
- //Print("time_to_place_trade",time_to_place_trade);
|
|
|
|
|
- //Print("signal is ",signal);
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case PERIOD_H4:
|
|
|
|
|
+ current_time_frame_string = "4 hour";
|
|
|
|
|
+ if(TimeToStruct(time_of_candle,edate))
|
|
|
|
|
+ {
|
|
|
|
|
+ edate.hour = edate.hour + 4;
|
|
|
|
|
+ edate.min = 0;
|
|
|
|
|
+ edate.sec = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
@@ -756,8 +797,6 @@ void choch(int i)
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- //signal = "";
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
signal = "";
|
|
signal = "";
|
|
@@ -789,73 +828,7 @@ void choch(int i)
|
|
|
|
|
|
|
|
trend = "downtrend";
|
|
trend = "downtrend";
|
|
|
|
|
|
|
|
- // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
- // -----------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
- // chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
|
|
- // chock_index++;
|
|
|
|
|
- //
|
|
|
|
|
- // HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
|
|
|
- // LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
|
|
|
- //
|
|
|
|
|
- // Print("from where you start ",chock_index);
|
|
|
|
|
- //
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
|
|
|
- // {
|
|
|
|
|
- // Print("object error ",GetLastError());
|
|
|
|
|
- // }
|
|
|
|
|
- // ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
- // ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line1") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line1");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // ObjectCreate(0,"target line1",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iLow(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iLow(Symbol(),PERIOD_CURRENT,chock_index));
|
|
|
|
|
- // ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
- // ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
- //
|
|
|
|
|
- //
|
|
|
|
|
- // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
- //
|
|
|
|
|
- // chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
|
|
- // Print("from where you end ",chock_index1);
|
|
|
|
|
- //
|
|
|
|
|
- // condition_not_match = false;
|
|
|
|
|
- // for(int p=chock_index - 1 ; p >=chock_index1; p--)
|
|
|
|
|
- // {
|
|
|
|
|
- // if(iLow(Symbol(),PERIOD_CURRENT,p) < HIGH)
|
|
|
|
|
- // {
|
|
|
|
|
- // condition_not_match = true;
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // if(condition_not_match == true)
|
|
|
|
|
- // {
|
|
|
|
|
- // Print("TArget line deleted");
|
|
|
|
|
- // HIGH = 0.0;
|
|
|
|
|
- // LOW = 0.0;
|
|
|
|
|
- // condition_not_match = false;
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line1") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line1");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // }
|
|
|
|
|
|
|
|
|
|
- //-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
if(signal == "sell")
|
|
if(signal == "sell")
|
|
|
{
|
|
{
|
|
|
MqlDateTime edate;
|
|
MqlDateTime edate;
|
|
@@ -876,6 +849,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 2;
|
|
edate.min = edate.min + 2;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M5:
|
|
case PERIOD_M5:
|
|
|
current_time_frame_string = "5 minutes";
|
|
current_time_frame_string = "5 minutes";
|
|
@@ -885,6 +860,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 10;
|
|
edate.min = edate.min + 10;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M15:
|
|
case PERIOD_M15:
|
|
|
current_time_frame_string = "15 minutes";
|
|
current_time_frame_string = "15 minutes";
|
|
@@ -894,6 +871,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 30;
|
|
edate.min = edate.min + 30;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M30:
|
|
case PERIOD_M30:
|
|
|
current_time_frame_string = "30 minutes";
|
|
current_time_frame_string = "30 minutes";
|
|
@@ -903,29 +882,34 @@ void choch(int i)
|
|
|
edate.min = edate.min + 60;
|
|
edate.min = edate.min + 60;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_H1:
|
|
case PERIOD_H1:
|
|
|
current_time_frame_string = "1 hour";
|
|
current_time_frame_string = "1 hour";
|
|
|
|
|
+ if(TimeToStruct(time_of_candle,edate))
|
|
|
|
|
+ {
|
|
|
|
|
+ edate.hour = edate.hour + 2;
|
|
|
|
|
+ edate.min = 0;
|
|
|
|
|
+ edate.sec = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
|
|
|
|
|
+ case PERIOD_H4:
|
|
|
|
|
+ current_time_frame_string = "4 hour";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
- edate.hour = edate.hour + 2;
|
|
|
|
|
|
|
+ edate.hour = edate.hour + 8;
|
|
|
edate.min = 0;
|
|
edate.min = 0;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
time_to_place_trade = StructToTime(edate);
|
|
time_to_place_trade = StructToTime(edate);
|
|
|
-
|
|
|
|
|
- Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
|
|
|
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
|
|
|
|
|
- //Print("choch_index_time ",choch_index_time);
|
|
|
|
|
- //Print("reversal_bar_time ",reversal_bar_time);
|
|
|
|
|
- //Print("time_of_candle",time_of_candle);
|
|
|
|
|
- //Print("time_to_place_trade",time_to_place_trade);
|
|
|
|
|
- //Print("signal is ",signal);
|
|
|
|
|
-
|
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
default:
|
|
@@ -933,8 +917,6 @@ void choch(int i)
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- //signal = "";
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
signal = "";
|
|
signal = "";
|
|
@@ -996,9 +978,6 @@ void choch(int i)
|
|
|
HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
|
LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
|
|
|
|
|
|
- Print("from where you start ",chock_index);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -1006,12 +985,6 @@ void choch(int i)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- //if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
|
|
|
- // {
|
|
|
|
|
- // Print("time at which error accur in downtrend to uptrend ",iTime(Symbol(),PERIOD_CURRENT,i));
|
|
|
|
|
- // Print("object error ",GetLastError());
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
|
|
|
{
|
|
{
|
|
|
Print("object created from downtrend to uptrend ");
|
|
Print("object created from downtrend to uptrend ");
|
|
@@ -1032,22 +1005,13 @@ void choch(int i)
|
|
|
|
|
|
|
|
choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
- Print("from where you end ",chock_index1);
|
|
|
|
|
|
|
|
|
|
bool condition_not_match = false;
|
|
bool condition_not_match = false;
|
|
|
- Print("time of chock_index - 2 is", iTime(Symbol(),PERIOD_CURRENT,chock_index-2));
|
|
|
|
|
- Print("time of current candle is ",iTime(Symbol(),PERIOD_CURRENT,1));
|
|
|
|
|
|
|
|
|
|
for(int p=chock_index - 2 ; p > chock_index1; p--)
|
|
for(int p=chock_index - 2 ; p > chock_index1; p--)
|
|
|
{
|
|
{
|
|
|
- // Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
|
|
|
|
|
- // Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,chock_index)," low is ",LOW);
|
|
|
|
|
-
|
|
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
|
|
|
{
|
|
{
|
|
|
- Print("here the condition is get false ");
|
|
|
|
|
- Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,p)," low is ",LOW);
|
|
|
|
|
- Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
|
|
|
|
|
condition_not_match = true;
|
|
condition_not_match = true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1094,41 +1058,47 @@ void choch(int i)
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 2;
|
|
|
|
|
|
|
+ edate.min = edate.min + 1;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M5:
|
|
case PERIOD_M5:
|
|
|
current_time_frame_string = "5 minutes";
|
|
current_time_frame_string = "5 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 10;
|
|
|
|
|
|
|
+ edate.min = edate.min + 5;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M15:
|
|
case PERIOD_M15:
|
|
|
current_time_frame_string = "15 minutes";
|
|
current_time_frame_string = "15 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 30;
|
|
|
|
|
|
|
+ edate.min = edate.min + 15;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M30:
|
|
case PERIOD_M30:
|
|
|
current_time_frame_string = "30 minutes";
|
|
current_time_frame_string = "30 minutes";
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = 0;
|
|
edate.hour = 0;
|
|
|
- edate.min = edate.min + 60;
|
|
|
|
|
|
|
+ edate.min = edate.min + 30;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_H1:
|
|
case PERIOD_H1:
|
|
|
current_time_frame_string = "1 hour";
|
|
current_time_frame_string = "1 hour";
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = edate.hour + 1;
|
|
edate.hour = edate.hour + 1;
|
|
@@ -1137,16 +1107,20 @@ void choch(int i)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
time_to_place_trade = StructToTime(edate);
|
|
time_to_place_trade = StructToTime(edate);
|
|
|
-
|
|
|
|
|
- Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
|
|
|
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
|
|
+ break;
|
|
|
|
|
|
|
|
- //Print("choch_index_time ",choch_index_time);
|
|
|
|
|
- //Print("reversal_bar_time ",reversal_bar_time);
|
|
|
|
|
- //Print("time_of_candle",time_of_candle);
|
|
|
|
|
- //Print("time_to_place_trade",time_to_place_trade);
|
|
|
|
|
- //Print("signal is ",signal);
|
|
|
|
|
|
|
+ case PERIOD_H4:
|
|
|
|
|
+ current_time_frame_string = "4 hour";
|
|
|
|
|
+ if(TimeToStruct(time_of_candle,edate))
|
|
|
|
|
+ {
|
|
|
|
|
+ edate.hour = edate.hour + 4;
|
|
|
|
|
+ edate.min = 0;
|
|
|
|
|
+ edate.sec = 0;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
default:
|
|
@@ -1162,13 +1136,6 @@ void choch(int i)
|
|
|
Entry_Action_2_down(Store_bos_last_index,i,diff);
|
|
Entry_Action_2_down(Store_bos_last_index,i,diff);
|
|
|
a = 2;
|
|
a = 2;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
high = iHigh(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
|
|
|
high_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
high_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
@@ -1187,69 +1154,6 @@ void choch(int i)
|
|
|
|
|
|
|
|
trend = "uptrend";
|
|
trend = "uptrend";
|
|
|
|
|
|
|
|
- // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
- // chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
|
|
- // chock_index++;
|
|
|
|
|
- //
|
|
|
|
|
- // HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index); // save high and low of the chock prev index to compare
|
|
|
|
|
- // LOW = iLow(Symbol(),PERIOD_CURRENT,chock_index);
|
|
|
|
|
- //
|
|
|
|
|
- // Print("from where you start ",chock_index);
|
|
|
|
|
- //
|
|
|
|
|
- //
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index));
|
|
|
|
|
- // ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
- // ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line1") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line1");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // ObjectCreate(0,"target line1",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iLow(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iLow(Symbol(),PERIOD_CURRENT,chock_index));
|
|
|
|
|
- // ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
|
|
|
|
|
- // ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
- //
|
|
|
|
|
- // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
|
|
|
|
|
- // chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
|
|
- // Print("from where you end ",chock_index1);
|
|
|
|
|
- //
|
|
|
|
|
- // condition_not_match = false;
|
|
|
|
|
- // for(int p=chock_index - 1 ; p >=chock_index1; p--)
|
|
|
|
|
- // {
|
|
|
|
|
- // if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
|
|
|
|
|
- // {
|
|
|
|
|
- // condition_not_match = true;
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // if(condition_not_match == true)
|
|
|
|
|
- // {
|
|
|
|
|
- // HIGH = 0.0;
|
|
|
|
|
- // LOW = 0.0;
|
|
|
|
|
- // Print("line target deleted :");
|
|
|
|
|
- // condition_not_match = false;
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // if(object_find("target line1") > 0)
|
|
|
|
|
- // {
|
|
|
|
|
- // ObjectDelete(0,"target line1");
|
|
|
|
|
- // }
|
|
|
|
|
- //
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- //------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
if(signal == "buy")
|
|
if(signal == "buy")
|
|
|
{
|
|
{
|
|
|
MqlDateTime edate;
|
|
MqlDateTime edate;
|
|
@@ -1270,6 +1174,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 2;
|
|
edate.min = edate.min + 2;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M5:
|
|
case PERIOD_M5:
|
|
|
current_time_frame_string = "5 minutes";
|
|
current_time_frame_string = "5 minutes";
|
|
@@ -1279,6 +1185,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 10;
|
|
edate.min = edate.min + 10;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M15:
|
|
case PERIOD_M15:
|
|
|
current_time_frame_string = "15 minutes";
|
|
current_time_frame_string = "15 minutes";
|
|
@@ -1288,6 +1196,8 @@ void choch(int i)
|
|
|
edate.min = edate.min + 30;
|
|
edate.min = edate.min + 30;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_M30:
|
|
case PERIOD_M30:
|
|
|
current_time_frame_string = "30 minutes";
|
|
current_time_frame_string = "30 minutes";
|
|
@@ -1297,29 +1207,31 @@ void choch(int i)
|
|
|
edate.min = edate.min + 60;
|
|
edate.min = edate.min + 60;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
case PERIOD_H1:
|
|
case PERIOD_H1:
|
|
|
current_time_frame_string = "1 hour";
|
|
current_time_frame_string = "1 hour";
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
if(TimeToStruct(time_of_candle,edate))
|
|
|
{
|
|
{
|
|
|
edate.hour = edate.hour + 2;
|
|
edate.hour = edate.hour + 2;
|
|
|
edate.min = 0;
|
|
edate.min = 0;
|
|
|
edate.sec = 0;
|
|
edate.sec = 0;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
time_to_place_trade = StructToTime(edate);
|
|
time_to_place_trade = StructToTime(edate);
|
|
|
-
|
|
|
|
|
- Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
|
|
|
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
|
|
+ break;
|
|
|
|
|
|
|
|
- //Print("choch_index_time ",choch_index_time);
|
|
|
|
|
- //Print("reversal_bar_time ",reversal_bar_time);
|
|
|
|
|
- //Print("time_of_candle",time_of_candle);
|
|
|
|
|
- //Print("time_to_place_trade",time_to_place_trade);
|
|
|
|
|
- //Print("signal is ",signal);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ case PERIOD_H4:
|
|
|
|
|
+ current_time_frame_string = "4 hour";
|
|
|
|
|
+ if(TimeToStruct(time_of_candle,edate))
|
|
|
|
|
+ {
|
|
|
|
|
+ edate.hour = edate.hour + 8;
|
|
|
|
|
+ edate.min = 0;
|
|
|
|
|
+ edate.sec = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ time_to_place_trade = StructToTime(edate);
|
|
|
|
|
+ store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
default:
|
|
@@ -2103,70 +2015,6 @@ void OnTick()
|
|
|
if(NewBar() == true)
|
|
if(NewBar() == true)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
- int dx = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time, false);
|
|
|
|
|
-//
|
|
|
|
|
-// double HI = iHigh(Symbol(),PERIOD_CURRENT,dx+1); // save high and low of the chock prev index to compare
|
|
|
|
|
-// double LO = iLow(Symbol(),PERIOD_CURRENT,dx+1);
|
|
|
|
|
-// if(trend == "downtrend")
|
|
|
|
|
-// {
|
|
|
|
|
-// for(int p=dx-1; p >= 1; p--)
|
|
|
|
|
-// {
|
|
|
|
|
-// if(iHigh(Symbol(),PERIOD_CURRENT,p) > LO)
|
|
|
|
|
-// {
|
|
|
|
|
-// tp_date_time_sell = 0.0;
|
|
|
|
|
-// Print("high is ",iHigh(Symbol(),PERIOD_CURRENT,p), "and index of high is ",p);
|
|
|
|
|
-// Print("TArget line deleted in on tick "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
|
|
|
|
|
-//
|
|
|
|
|
-//
|
|
|
|
|
-// if(object_find("target line") > 0)
|
|
|
|
|
-// {
|
|
|
|
|
-// ObjectDelete(0,"target line");
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// if(object_find("target line1") > 0)
|
|
|
|
|
-// {
|
|
|
|
|
-// ObjectDelete(0,"target line1");
|
|
|
|
|
-// }
|
|
|
|
|
-// break;
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// if(trend == "uptrend")
|
|
|
|
|
-// {
|
|
|
|
|
-// for(int p=dx-1; p >= 1; p--)
|
|
|
|
|
-// {
|
|
|
|
|
-// if(iLow(Symbol(),PERIOD_CURRENT,p) < HI)
|
|
|
|
|
-// {
|
|
|
|
|
-// Print("low is ",LO, "and index of low is ",p);
|
|
|
|
|
-// Print("Target line deleted in on tick "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
|
|
|
|
|
-//
|
|
|
|
|
-// tp_date_time_buy = 0.0;
|
|
|
|
|
-//
|
|
|
|
|
-// if(object_find("target line") > 0)
|
|
|
|
|
-// {
|
|
|
|
|
-// ObjectDelete(0,"target line");
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// if(object_find("target line1") > 0)
|
|
|
|
|
-// {
|
|
|
|
|
-// ObjectDelete(0,"target line1");
|
|
|
|
|
-// }
|
|
|
|
|
-// break;
|
|
|
|
|
-//
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
Entry_strategy(1);
|
|
Entry_strategy(1);
|
|
|
|
|
|
|
|
// for entry condition candel 1
|
|
// for entry condition candel 1
|
|
@@ -2183,24 +2031,37 @@ void OnTick()
|
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
|
|
|
|
|
|
|
|
+
|
|
|
double reversalMax = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) < iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
double reversalMax = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) < iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
|
|
|
+ // bool snd_con = false;
|
|
|
|
|
+ for(int i=close_index-1; i>=1; i--) // second condition of updation
|
|
|
|
|
+ {
|
|
|
|
|
+ if(iClose(Symbol(),PERIOD_CURRENT,i) < reversalMax)
|
|
|
|
|
+ {
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
|
|
|
|
|
|
|
+ // if(iOpen(Symbol(),PERIOD_CURRENT,1) > iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
|
|
|
{
|
|
{
|
|
|
- Print("<<<<<<<<<<<< Entry 1 >>>>>>>>>");
|
|
|
|
|
- placeBuyTrade();
|
|
|
|
|
- remove_value_from_structure();
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- od_1[m].Signal == "";
|
|
|
|
|
- od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
|
|
|
|
|
- signal = "";
|
|
|
|
|
- Print("buy trade placed -------------------------------------------------------------");
|
|
|
|
|
- Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
+ if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
+ && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Print("<<<<<<<<<<<< Entry 1 >>>>>>>>>");
|
|
|
|
|
+ placeBuyTrade();
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ od_1[m].Signal == "";
|
|
|
|
|
+ od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+
|
|
|
|
|
+ signal = "";
|
|
|
|
|
+ Print("buy trade placed -------------------------------------------------------------");
|
|
|
|
|
+ Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -2215,21 +2076,37 @@ void OnTick()
|
|
|
|
|
|
|
|
|
|
|
|
|
double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) > iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) > iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
|
-
|
|
|
|
|
- if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
|
|
|
|
|
|
|
+ // double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) > iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
|
|
|
+ // bool snd_con = false;
|
|
|
|
|
+ //
|
|
|
|
|
+ for(int i=close_index-1; i>=1; i--) // second condition of updation
|
|
|
{
|
|
{
|
|
|
- placeSellTrade();
|
|
|
|
|
- remove_value_from_structure();
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- od_1[m].Signal == "";
|
|
|
|
|
- od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- signal = "";
|
|
|
|
|
- Print("sell trade placed -------------------------------------------------------------");
|
|
|
|
|
- Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
+ if(iClose(Symbol(),PERIOD_CURRENT,i) > reversalMin)
|
|
|
|
|
+ {
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ //snd_con = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //
|
|
|
|
|
+ // if(iOpen(Symbol(),PERIOD_CURRENT,1) < iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
+ && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
|
|
|
|
|
+ {
|
|
|
|
|
+ placeSellTrade();
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ od_1[m].Signal == "";
|
|
|
|
|
+ od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ signal = "";
|
|
|
|
|
+ Print("sell trade placed -------------------------------------------------------------");
|
|
|
|
|
+ Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -2242,9 +2119,10 @@ void OnTick()
|
|
|
{
|
|
{
|
|
|
if(trend == "uptrend")
|
|
if(trend == "uptrend")
|
|
|
{
|
|
{
|
|
|
- for(int p=dx-1; p >= 1; p--)
|
|
|
|
|
|
|
+ double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
|
|
|
+ for(int p=ib-2; p >= 1; p--)
|
|
|
{
|
|
{
|
|
|
- double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
|
|
|
|
|
+
|
|
|
Print("low of the last choch index is",iLow(Symbol(),PERIOD_CURRENT,ib));
|
|
Print("low of the last choch index is",iLow(Symbol(),PERIOD_CURRENT,ib));
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,p) > iLow(Symbol(),PERIOD_CURRENT,ib))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,p) > iLow(Symbol(),PERIOD_CURRENT,ib))
|
|
|
{
|
|
{
|
|
@@ -2275,28 +2153,42 @@ void OnTick()
|
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
|
|
|
|
|
|
- if(value_close_high(close_index) == true)
|
|
|
|
|
|
|
+ //bool snd_con = false;
|
|
|
|
|
+ //double reversalMax = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) < iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
|
|
|
+
|
|
|
|
|
+ //for(int i=close_index-1; i>=1; i--) // second condition of updation
|
|
|
|
|
+ // {
|
|
|
|
|
+ // if(iClose(Symbol(),PERIOD_CURRENT,i) < reversalMax)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // snd_con = true;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ if(iOpen(Symbol(),PERIOD_CURRENT,1) > iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
|
|
|
{
|
|
{
|
|
|
- if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if(value_close_high(close_index) == true)
|
|
|
{
|
|
{
|
|
|
- Print("<<<<<<<<<<<< Entry 2 >>>>>>>>>");
|
|
|
|
|
- placeBuyTrade();
|
|
|
|
|
- remove_value_from_structure();
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- od_1[m].Signal == "";
|
|
|
|
|
- od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
|
|
+ if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
+ && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
|
|
|
|
|
+ {
|
|
|
|
|
+ Print("<<<<<<<<<<<< Entry 2 >>>>>>>>>");
|
|
|
|
|
+ placeBuyTrade();
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ od_1[m].Signal == "";
|
|
|
|
|
+ od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
|
|
|
- signal = "";
|
|
|
|
|
- Print("buy trade placed -------------------------------------------------------------");
|
|
|
|
|
- Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
+ signal = "";
|
|
|
|
|
+ Print("buy trade placed -------------------------------------------------------------");
|
|
|
|
|
+ Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "sell" && od_1[m].Time_of_candle_For_trade != 0 /*&& HIGH != 0 && LOW != 0*/)
|
|
if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "sell" && od_1[m].Time_of_candle_For_trade != 0 /*&& HIGH != 0 && LOW != 0*/)
|
|
@@ -2304,14 +2196,14 @@ void OnTick()
|
|
|
|
|
|
|
|
if(trend == "downtrend")
|
|
if(trend == "downtrend")
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
- for(int p=dx-1; p >= 1; p--)
|
|
|
|
|
|
|
+ double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
|
|
|
|
|
+ for(int p=ib-2; p >= 1; p--)
|
|
|
{
|
|
{
|
|
|
- double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
|
|
|
|
|
+
|
|
|
Print("high of the last choch index is",iHigh(Symbol(),PERIOD_CURRENT,ib));
|
|
Print("high of the last choch index is",iHigh(Symbol(),PERIOD_CURRENT,ib));
|
|
|
if(iLow(Symbol(),PERIOD_CURRENT,p) < iHigh(Symbol(),PERIOD_CURRENT,ib))
|
|
if(iLow(Symbol(),PERIOD_CURRENT,p) < iHigh(Symbol(),PERIOD_CURRENT,ib))
|
|
|
{
|
|
{
|
|
|
- // Print("low is ",LO, "and index of low is ",p);
|
|
|
|
|
|
|
+ // Print("low is ",LO, "and index of low is ",p);
|
|
|
Print("Target line deleted in on entry 2 "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
|
|
Print("Target line deleted in on entry 2 "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
|
|
|
|
|
|
|
|
tp_date_time_sell = 0.0;
|
|
tp_date_time_sell = 0.0;
|
|
@@ -2335,22 +2227,37 @@ void OnTick()
|
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
|
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
|
|
|
|
|
|
|
|
- if(value_close_low(close_index) == true)
|
|
|
|
|
|
|
+ // double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) > iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ? iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
|
|
|
|
|
+ // bool snd_con = false;
|
|
|
|
|
+ //
|
|
|
|
|
+ // for(int i=close_index-1; i>=1; i--) // second condition of updation
|
|
|
|
|
+ // {
|
|
|
|
|
+ // if(iClose(Symbol(),PERIOD_CURRENT,i) > reversalMin)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // snd_con = true;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ if(iOpen(Symbol(),PERIOD_CURRENT,1) < iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
|
|
|
{
|
|
{
|
|
|
- if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell!= 0.0)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if(value_close_low(close_index) == true)
|
|
|
{
|
|
{
|
|
|
- placeSellTrade();
|
|
|
|
|
- remove_value_from_structure();
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- od_1[m].Signal == "";
|
|
|
|
|
- od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
- od_1[m].choch_index_date_time = 0;
|
|
|
|
|
- signal = "";
|
|
|
|
|
- Print("sell trade placed -------------------------------------------------------------");
|
|
|
|
|
- Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
+ if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
|
|
+ && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
|
|
|
|
|
+ {
|
|
|
|
|
+ placeSellTrade();
|
|
|
|
|
+ remove_value_from_structure();
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ od_1[m].Signal == "";
|
|
|
|
|
+ od_1[m].reversal_index_date_time = 0;
|
|
|
|
|
+ od_1[m].choch_index_date_time = 0;
|
|
|
|
|
+ signal = "";
|
|
|
|
|
+ Print("sell trade placed -------------------------------------------------------------");
|
|
|
|
|
+ Print("time at which trade is placed : ",TimeCurrent());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2420,3 +2327,9 @@ string checkCandle(int v) // to check the candle is bullish or bearish
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
+
|
|
|
|
|
+//+------------------------------------------------------------------+
|
|
|
|
|
+
|
|
|
|
|
+//+------------------------------------------------------------------+
|
|
|
|
|
+
|
|
|
|
|
+//+------------------------------------------------------------------+
|