Очень инетресно!

 

Нашёл интересный Советник!

Советник основан на теории Мартингейла!

Так вот он в оригинале после того как видит убаточную позицию- через определённое расстояние- step выставляет следующий ордер умноженный на число- mult, а профит так как лот увеличился он подтягивает ближе к цене открытия следующего ордера!

Открывает он первый ордер по стохастику по ниже следующему алгоритму:


if(OrdersTotalMagicbuy(Magicbuy)<1)
{
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneBUY)ticketbuy = OrderSend(Symbol(),OP_BUY,lotsbuy,Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);
}
if(OrdersTotalMagicsell(Magicsell)<1)
{
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneSELL)ticketsell = OrderSend(Symbol(),OP_SELL,lotssell,Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);
}

Мне показалось что здесь небольшая ошибка которая сводит работу стохастика к нулю! Ошибка (Я её выделил красным) Мне кажется знак должен стоять по другому! То биш покупка должна происходить НИЖЕ зоны покупки А продажа ВЫШЕ зоны продажи!

Но самое интересное что когда я сменил эти знаки на противоположные Советник почему-то пререстал подтягивать тейк профит! Ордера он закрывает потакому алгоритму:


for (cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber () == Magicbuy)
{
ticketbuy = OrderTicket();OrderSelect(ticketbuy,SELECT_BY_TICKET, MODE_TRADES);profitbuy = profitbuy+OrderProfit() ;
openpricebuy = OrderOpenPrice();
}
}
tpb = (OrdersTotalMagicbuy(Magicbuy)*proffactor*Point)+openpricebuy;
double bid = MarketInfo(Symbol(),MODE_BID);
if (profitbuy>0)
{
if (Bid>=tpb) orderclosebuy(ticketbuy);
}
for (cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicsell)
{
ticketsell = OrderTicket();OrderSelect(ticketsell,SELECT_BY_TICKET, MODE_TRADES);profitsell = profitsell+OrderProfit();
openpricesell = OrderOpenPrice();
}
}
tps = openpricesell-(OrdersTotalMagicsell(Magicsell)*proffactor*Point);
double ask = MarketInfo(Symbol(),MODE_ASK);
if (profitsell>0)
{
if (Ask<=tps)orderclosesell(ticketsell);
}

За ранее прошу прощения если я где-то ошибся но мне уж очень интересно почему он перестал Тейк подтягивать??? Насколько я понимаю Тейк к первой функции никак не относится!

Объясните пожалста!


P.S. Если есть желание можете сами проверить!

Причина обращения: