|
@@ -85,6 +85,7 @@ datetime high_index_time;
|
|
|
datetime low_index_time;
|
|
datetime low_index_time;
|
|
|
datetime tp_date_time_buy;
|
|
datetime tp_date_time_buy;
|
|
|
datetime tp_date_time_sell;
|
|
datetime tp_date_time_sell;
|
|
|
|
|
+datetime Last_bos_before_reversal;
|
|
|
|
|
|
|
|
|
|
|
|
|
double hi;
|
|
double hi;
|
|
@@ -310,7 +311,8 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
|
|
+
|
|
|
Print("target lines deleted due to in bar");
|
|
Print("target lines deleted due to in bar");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -329,7 +331,7 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
Print("target lines deleted due to in bar");
|
|
Print("target lines deleted due to in bar");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -398,7 +400,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
Print("target lines deleted due to in bar");
|
|
Print("target lines deleted due to in bar");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -416,7 +418,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
Print("target lines deleted due to in bar");
|
|
Print("target lines deleted due to in bar");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -459,6 +461,53 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
//| |
|
|
//| |
|
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
+void Check_Inside_bar(int inex)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ for(int j=inex+1; j>=1; 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))
|
|
|
|
|
+ {
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
|
|
+ Print("Target line deleted due to in bar ");
|
|
|
|
|
+ if(object_find("target line") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"target line");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(object_find("target line1") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"target line1");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ 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))
|
|
|
|
|
+ {
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
|
|
+ Print("Target line deleted due to in bar ");
|
|
|
|
|
+ if(object_find("target line") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"target line");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(object_find("target line1") > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ ObjectDelete(0,"target line1");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+//+------------------------------------------------------------------+
|
|
|
|
|
+//| |
|
|
|
|
|
+//+------------------------------------------------------------------+
|
|
|
void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
|
|
void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
@@ -473,6 +522,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
Print("Target line deleted due to in bar ");
|
|
Print("Target line deleted due to in bar ");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -491,6 +541,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
Print("Target line deleted due to in bar ");
|
|
Print("Target line deleted due to in bar ");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -559,6 +610,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
Print("Target line deleted due to in bar ");
|
|
Print("Target line deleted due to in bar ");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -577,6 +629,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
|
|
|
{
|
|
{
|
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1) && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
|
|
|
{
|
|
{
|
|
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
Print("Target line deleted due to in bar ");
|
|
Print("Target line deleted due to in bar ");
|
|
|
if(object_find("target line") > 0)
|
|
if(object_find("target line") > 0)
|
|
|
{
|
|
{
|
|
@@ -1834,7 +1887,7 @@ void OnTick()
|
|
|
|
|
|
|
|
if(od_1[m].EntryCon == 2 && od_1[m].Signal == "buy")
|
|
if(od_1[m].EntryCon == 2 && od_1[m].Signal == "buy")
|
|
|
{
|
|
{
|
|
|
- if(trend == "uptrend" )
|
|
|
|
|
|
|
+ if(trend == "uptrend")
|
|
|
{
|
|
{
|
|
|
double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
|
for(int p=ib-2; p >= 1; p--)
|
|
for(int p=ib-2; p >= 1; p--)
|
|
@@ -1861,7 +1914,7 @@ 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);
|
|
|
-
|
|
|
|
|
|
|
+ Check_Inside_bar(reversal_indexx);
|
|
|
bool snd_con = false;
|
|
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);
|
|
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);
|
|
|
|
|
|
|
@@ -1911,10 +1964,10 @@ void OnTick()
|
|
|
|
|
|
|
|
if(od_1[m].EntryCon == 2 && od_1[m].Signal == "sell")
|
|
if(od_1[m].EntryCon == 2 && od_1[m].Signal == "sell")
|
|
|
{
|
|
{
|
|
|
- // Print("hi ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
|
|
|
|
|
|
|
+ // Print("hi ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
|
|
|
if(trend == "downtrend")
|
|
if(trend == "downtrend")
|
|
|
{
|
|
{
|
|
|
- // Print("there ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
|
|
|
|
|
|
|
+ // Print("there ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
|
|
|
double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
|
|
double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
|
|
|
for(int p=ib-2; p >= 1; p--)
|
|
for(int p=ib-2; p >= 1; p--)
|
|
|
{
|
|
{
|
|
@@ -1942,7 +1995,7 @@ 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);
|
|
|
-
|
|
|
|
|
|
|
+ Check_Inside_bar(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);
|
|
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_con1 = false;
|
|
bool snd_con1 = false;
|
|
|
|
|
|