Попробую. Если поиграться с тп и сл ом. к примеру на разных парах разные, надо тестировать. к примеру евродоллар тп/сл 30/60. из 10 сделок подряд одна прибыльная по любому. Я торгую 2 сделки в день по каждой паре. еще торгую через возврат спреда это дополнительный доход. Уже не раз испытано при полном сливе возврат спреда отдает 25%. За 1 — 2 месяца отбиваешь свои деньги. это первый советник. Но хотелось бы граля. Потому что практика показывает что прибыльная сделка получается 3 или 4 подряд. Редко 9 — 10я (при ручной торговле слив был 2 раза в год ).
Но если будут сделки открываться и в бай и шелл одновременно, закрытие их будет одновременно. убыток превращаем в прибыль и с одной стороны увеличим возврат спреда и по моим подсчетам увеличиваем количество сделок с 10 до 16 — 17 в худшем случае, что конечно увеличивает шанс на прибыльную сделку. (ну в общем еще буду тестировать но это очень умеренный мартингейл).
а сл и тп используемые евро доллар 30/60. британец доллар 25/50 (доллар японец, доллар канадец и доллар швейдарец все 20/40)
и использую тайм фрейм 15. на 5 много шума на 30 запаздывает.
Klot умножаю не на 2 а на 1.2 — 1.45 на разных парах разные. так же Kstop умножаю на 1,1
Ну объяснил как смог протестирую и будем видеть
Aндрей если возможно можно еще раз обратиться. по этому же советнику. торгует отлично. и ставлю советник на 8 пар. Выдерживает просадку. Практика показывает что в профит выхожу на 4 — 5 максимум на 10 сделки подряд (так как stoploss ставлю в 2 раза меньше takeprofita), при увеличеном KLot. хотелось бы при сигнале на бай открывались ордер и в бай и в шелл. с заданным take и stop, так же само и при сигнале на шелл чтобы открывались на бай и на шелл. остальное оставить так же как и есть. Закрываться они будут одновременно, при таком раскладе стопы мы превращаем в 25% прибыли от ожидаемой позиции
еще более благодарен по этой торговой системе работаю более полугода, но на разных индикаторах MACD. RSI и MA. и в разных брокерах. поэтому и выучил поверхностно МКЛ. из разных советников брал куски кода и получил советник полуавтомат при достигаемой прибыли выключал советник на отдельной паре вручную. на три брокера и на 5 валютных парах каждая трудновато уследить. кстати давал не плохой результат. Сейчас будет на много легче. протестирую проработаю. извиняюсь если еще раз обращусь. но если все пойдет как положено профитом поделимся.
я не очень обладаю навыками так поверхностно. и уже 3 часа думаю.
последняя моя думка если я правильно понимаю вот такая
добаляю
void Stop()
{
bool sel=OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderProfit()<0)
{
Lots=OrderLots() *1.5;
StopMode();
mode++;
}
if(OrderProfit()>0)
{
Lots= Lots;
}
}
return;
}
и еще что то надо обнулить m но как не понимаю. что бы переменная m не срабатывала. но где ее всунуть тоже не понимаю
Спасибо большое но еще одна просьба увеличить как стоп лосс так же и тэйк профит. и если ордер сработал по тэйку то не важно этот ордер в покупку или в продажу чтобы значение StoppLoss и TakeProfit возвращались в первоначальные.Так же хотелось бы всунуть обратно функцию мартингейла на лот но чтобы он умножал не на 2 а на 1.5. пробовал вставить эту же функцию но при срабатывании профита. лот модифицируется и ставит лот последнего сработанного ордера. и потом опять увеличивается. извиняюсь за назойливость. но заранее благодарен.
В конце добалвена функция мартингейла. но хотелось бы что бы мартингейл работал не на лоте а увеличивался в 2 раза Стоп лосс и Таке профит.
Алгоритм 1)если по истории профит меньше 0 то увеличиваем СЛ и ТП в два разе.
//+------------------------------------------------------------------+
int start()
{
//---- go trading only for first tiks of new bar
if(Volume[0]<1 && Volume[0]>10 ) return;
//----
int p=0;
//---- get Indicatorrs
double ma1=iMA(NULL,0,Ma1,0,MODE_EMA,PRICE_CLOSE,1);
double ma2=iMA(NULL,0,Ma2,0,MODE_EMA,PRICE_CLOSE,1);
//----
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
}
}
//---- buy
if(ma1>ma2 && b && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_BUY,Lots(),Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGIC,0,Blue);
b=false;
s=true;
}
}
//---- sell
if(ma1<ma2 && s && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_SELL,Lots(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGIC,0,Red );
b=true;
s=false;
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
double Lots()
{
double Lot = Lots;
int total = OrdersHistoryTotal();
for (int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol()== Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderProfit() > 0)
{
Lot=Lots;
}
else
{
Lot=OrderLots() *2;
}
}
}
return(Lot);
}
//+------------------------------------------------------------------+StopLoss
//+------------------------------------------------------------------+
int start()
{
//---- go trading only for first tiks of new bar
if(Volume[0]<1 && Volume[0]>10 ) return;
//----
int p=0;
//---- get Indicatorrs
double ma1=iMA(NULL,0,Ma1,0,MODE_EMA,PRICE_CLOSE,1);
double ma2=iMA(NULL,0,Ma2,0,MODE_EMA,PRICE_CLOSE,1);
//----
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
}
}
//---- buy
if(ma1>ma2 && b && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_BUY,Lots(),Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGIC,0,Blue);
b=false;
s=true;
}
}
//---- sell
if(ma1<ma2 && s && p<1)
{
if( Hour()>=Hour_Start && Hour()<Hour_Stop )
{
OrderSend(Symbol(),OP_SELL,Lots(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGIC,0,Red );
b=true;
s=false;
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
double Lots()
{
double Lot = Lots;
int total = OrdersHistoryTotal();
for (int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol()== Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderProfit() > 0)
{
Lot=Lots;
}
else
{
Lot=OrderLots() *2;
}
}
}
return(Lot);
}
//+------------------------------------------------------------------+
этот советник метод пурия, и не очень хорош. там просто 3 мувинга и MACD и то же самое. пробовал прикрутить мартина. эксперементировал на разных периодах мувинга. в конце получил на 6 валютных парах минимум 10 пройгрышей подряд. поковыряюсь и выложу.
прикольная тема. извиняюсь может я не по теме но создал советник засунул в него эту функцию. на одной паре работает без проблем. но на мультивалютке глючит. берет на lotsAray {} 0.1,0.2,0.3,0.4,0.5,0.6. первый лот 0.1 второй. 0.2 идет а третий уже вкладывает 0.5 по порядку. Извиняюсь если вопрос глупый но хотелось бы разобраться.
laban