|
|
@@ -83,6 +83,8 @@ datetime time_of_candle = 0.0;
|
|
|
datetime time_to_place_trade = 0.0;
|
|
|
datetime high_index_time;
|
|
|
datetime low_index_time;
|
|
|
+datetime tp_date_time_buy;
|
|
|
+datetime tp_date_time_sell;
|
|
|
|
|
|
|
|
|
double hi;
|
|
|
@@ -601,6 +603,7 @@ void choch(int i)
|
|
|
// -----------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
int chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
chock_index++;
|
|
|
+ datetime ti = choch_index_time;
|
|
|
|
|
|
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);
|
|
|
@@ -613,10 +616,17 @@ void choch(int i)
|
|
|
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)));
|
|
|
+ //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)));
|
|
|
{
|
|
|
- Print("object error ",GetLastError());
|
|
|
+ Print("object created from uptrend to downtrend ");
|
|
|
}
|
|
|
+
|
|
|
ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
|
|
|
ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
|
@@ -636,7 +646,7 @@ void choch(int i)
|
|
|
Print("from where you end ",chock_index1);
|
|
|
|
|
|
bool condition_not_match = false;
|
|
|
- for(int p=chock_index - 1 ; p >=chock_index1; p--)
|
|
|
+ for(int p=chock_index - 2 ; p >=chock_index1; p--)
|
|
|
{
|
|
|
if(iLow(Symbol(),PERIOD_CURRENT,p) < HIGH)
|
|
|
{
|
|
|
@@ -648,6 +658,7 @@ void choch(int i)
|
|
|
{
|
|
|
HIGH = 0.0;
|
|
|
LOW = 0.0;
|
|
|
+ tp_date_time_sell = 0.0;
|
|
|
Print("TArget line deleted");
|
|
|
condition_not_match = false;
|
|
|
|
|
|
@@ -662,6 +673,10 @@ void choch(int i)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ tp_date_time_sell = ti;
|
|
|
+ }
|
|
|
|
|
|
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
if(signal == "sell")
|
|
|
@@ -776,69 +791,69 @@ void choch(int i)
|
|
|
|
|
|
// 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");
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ // 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")
|
|
|
@@ -976,6 +991,7 @@ void choch(int i)
|
|
|
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
int chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
|
|
|
chock_index++;
|
|
|
+ datetime t = choch_index_time;
|
|
|
|
|
|
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);
|
|
|
@@ -989,7 +1005,19 @@ void choch(int i)
|
|
|
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));
|
|
|
+
|
|
|
+ //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)));
|
|
|
+ {
|
|
|
+ Print("object created from downtrend to uptrend ");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
|
|
|
ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
|
|
|
|
|
|
@@ -1007,10 +1035,16 @@ void choch(int i)
|
|
|
Print("from where you end ",chock_index1);
|
|
|
|
|
|
bool condition_not_match = false;
|
|
|
- for(int p=chock_index - 1 ; 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)
|
|
|
{
|
|
|
+ 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;
|
|
|
}
|
|
|
}
|
|
|
@@ -1020,6 +1054,7 @@ void choch(int i)
|
|
|
Print("line target deleted :");
|
|
|
HIGH = 0.0;
|
|
|
LOW = 0.0;
|
|
|
+ tp_date_time_buy = 0.0;
|
|
|
condition_not_match = false;
|
|
|
|
|
|
if(object_find("target line") > 0)
|
|
|
@@ -1033,6 +1068,10 @@ void choch(int i)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ tp_date_time_buy = t;
|
|
|
+ }
|
|
|
|
|
|
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
if(signal == "buy")
|
|
|
@@ -1147,65 +1186,65 @@ void choch(int i)
|
|
|
|
|
|
// 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");
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ // 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")
|
|
|
@@ -1775,17 +1814,25 @@ void placeBuyTrade()
|
|
|
double sell_SL = 0,sell_Tp = 0, openPrice = 0,buySL = 0, buyTp = 0;
|
|
|
openPrice = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
|
|
|
double Ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
|
|
|
+
|
|
|
int ch = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time,false); // get high of chock index
|
|
|
buySL = iLow(Symbol(),PERIOD_CURRENT,ch) - stoploss *10 * Point();
|
|
|
+
|
|
|
+ int tp = iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
|
|
|
+
|
|
|
+ buyTp = iLow(Symbol(),PERIOD_CURRENT,tp);
|
|
|
+
|
|
|
+ // tp_date_time_buy = 0.0;
|
|
|
//
|
|
|
// if(stoploss != 0)
|
|
|
// {
|
|
|
// buySL = Ask - (stoploss *10* Point());
|
|
|
// }
|
|
|
- if(takeProfit != 0)
|
|
|
- {
|
|
|
- buyTp = Ask + (takeProfit *10* Point());
|
|
|
- }
|
|
|
+//if(takeProfit != 0)
|
|
|
+// {
|
|
|
+// buyTp = Ask + (takeProfit *10* Point());
|
|
|
+// }
|
|
|
+
|
|
|
double distance = (Ask - buySL)/Point();
|
|
|
if(trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,getlot(distance),Ask,buySL,buyTp,"Buy Trade Placed"))
|
|
|
{
|
|
|
@@ -1855,17 +1902,23 @@ void placeSellTrade()
|
|
|
double sell_SL = 0,sell_Tp = 0, openPrice = 0, buySL = 0, buyTp = 0;
|
|
|
openPrice = SymbolInfoDouble(Symbol(),SYMBOL_BID);
|
|
|
double Bid = SymbolInfoDouble(Symbol(),SYMBOL_BID);
|
|
|
+
|
|
|
int ch = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time,false); // get high of chock index
|
|
|
sell_SL = iHigh(Symbol(),PERIOD_CURRENT,ch) + stoploss *10 * Point();
|
|
|
+
|
|
|
+ int tp = iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
|
|
|
+ sell_Tp = iLow(Symbol(),PERIOD_CURRENT,tp);
|
|
|
+
|
|
|
+ //tp_date_time_sell = 0.0;
|
|
|
double distance = (sell_SL - Bid)/Point();
|
|
|
//if(stoploss != 0)
|
|
|
// {
|
|
|
// sell_SL = Bid + (stoploss *10* Point());
|
|
|
// }
|
|
|
- if(takeProfit != 0)
|
|
|
- {
|
|
|
- sell_Tp = Bid - (takeProfit *10* Point());
|
|
|
- }
|
|
|
+//if(takeProfit != 0)
|
|
|
+// {
|
|
|
+// sell_Tp = Bid - (takeProfit *10* Point());
|
|
|
+// }
|
|
|
|
|
|
|
|
|
if(trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,getlot(distance),Bid,sell_SL,sell_Tp,"Sell Trade Placed"))
|
|
|
@@ -1895,27 +1948,27 @@ int OnInit()
|
|
|
|
|
|
int idx = 0;
|
|
|
|
|
|
- int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT,inpTime, false);
|
|
|
- if(ObjectCreate(0,"line",OBJ_VLINE,0,inpTime,iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
|
|
|
+//int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT,inpTime, false);
|
|
|
+//if(ObjectCreate(0,"line",OBJ_VLINE,0,inpTime,iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
|
|
|
+// {
|
|
|
+// Print("vertical line created on chart : ");
|
|
|
+// }
|
|
|
+//else
|
|
|
+// {
|
|
|
+// Print("error in creating line : ");
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT, D'2021.09.01 15:30:27', false);
|
|
|
+ if(ObjectCreate(0,"line",OBJ_VLINE,0,D'2021.09.01 15:30:27',iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
|
|
|
{
|
|
|
- Print("vertical line created on chart : ");
|
|
|
+ Print("object created on chart : ");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Print("error in creating line : ");
|
|
|
+ Print("object not created : ");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- //int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT, D'2022.09.01 15:30:27', false);
|
|
|
- //if(ObjectCreate(0,"line",OBJ_VLINE,0,D'2022.09.01 15:30:27',iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
|
|
|
- // {
|
|
|
- // Print("object created on chart : ");
|
|
|
- // }
|
|
|
- //else
|
|
|
- // {
|
|
|
- // Print("object not created : ");
|
|
|
- // }
|
|
|
-
|
|
|
object_find(object_name);
|
|
|
if(object_find(object_name) == true)
|
|
|
{
|
|
|
@@ -2072,7 +2125,7 @@ void OnTick()
|
|
|
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);
|
|
|
|
|
|
if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(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();
|
|
|
@@ -2092,7 +2145,7 @@ void OnTick()
|
|
|
|
|
|
}
|
|
|
|
|
|
- if(od_1[m].EntryCon == 1 && iTime(Symbol(),PERIOD_CURRENT,1) == 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 == 1 && iTime(Symbol(),PERIOD_CURRENT,1) == 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*/)
|
|
|
{
|
|
|
|
|
|
//Print("i am in enrtry condition 1 : ");
|
|
|
@@ -2112,7 +2165,7 @@ 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);
|
|
|
|
|
|
if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(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();
|
|
|
@@ -2133,7 +2186,7 @@ void OnTick()
|
|
|
|
|
|
// second condition match
|
|
|
|
|
|
- if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "buy" && 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 == "buy" && od_1[m].Time_of_candle_For_trade != 0 /*&& HIGH != 0 && LOW != 0*/)
|
|
|
{
|
|
|
// Print("time is greater and signal is buy ",TimeCurrent());
|
|
|
// Print("i am in enrtry condition 1 : ");
|
|
|
@@ -2155,7 +2208,7 @@ void OnTick()
|
|
|
if(value_close_high(close_index) == true)
|
|
|
{
|
|
|
if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(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();
|
|
|
@@ -2176,7 +2229,7 @@ void OnTick()
|
|
|
|
|
|
}
|
|
|
|
|
|
- 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*/)
|
|
|
{
|
|
|
|
|
|
// Print("time is greater and signal is sell ",TimeCurrent());
|
|
|
@@ -2197,7 +2250,7 @@ void OnTick()
|
|
|
if(value_close_low(close_index) == true)
|
|
|
{
|
|
|
if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
|
|
|
- && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(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();
|