Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2377
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мне надо сравнить суммарный профит sell с самым убыточным бай. Суммарный профит суммарного селл и самого убыточного бай должен быть > например 2$. Тогда закрываем все селл и самый убыточный бай. Все! См скрин выше! Остальные бай не трогаем, закрываем только самый убыточный.
Всем добрый день. Вот у меня есть код трейлинг стопа по параболику.
{ // НАЧАЛО ТРАЛ ПО ПАРАБОЛИК//-------------------------------------------------------------------------------------------------+ //+------------------------------------------------------------------+ int Tral = tral; double Sar = iCustom(_Symbol,PeriodForWork_tral_parabolik,"Parabolic",step_tral_parabolik,max_tral_parabolik,1); //+------------------------------------------------------------------+ for(int pos=0;pos<OrdersTotal();pos++) { if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) if(OrderSymbol()==_Symbol) { if(OrderType()==OP_SELL) { if(OrderOpenPrice()>Ask+Tral*Point&&OrderOpenPrice()>Sar) { if(OrderStopLoss()!= Sar&&Sar>Ask) { if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Sar,Digits),OrderTakeProfit(),0,clrBlack)) { Print("Order SELL Modify",GetLastError()); } } } } if(OrderType()==OP_BUY) { if(OrderOpenPrice()<Bid-Tral*Point&&OrderOpenPrice()<Sar) { if(OrderStopLoss()!= Sar&&Sar<Bid) { if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Sar,Digits),OrderTakeProfit(),0,clrGreen)) { Print("Order BUY Modify",GetLastError()); } } } } } } if (GetLastError()==141){Alert(GetLastError()); ExpertRemove();}// ПРОВЕРКА ОТ ДОЛБАНИЯ СЕРВЕРА И БАНА СЧЁТА } // КОНЕЦ ТРАЛ ПО ПАРАБОЛИК //-------------------------------------------------------------------------------------------------+Подскажите пожалуйста, как переделать его в трал по пунктам?
Всем добрый день. Вот у меня есть код трейлинг стопа по параболику.
Подскажите пожалуйста, как переделать его в трал по пунктам?
Завершайте писать лапшу с лесенками кода :-)
Сделайте себе reusable функцию
bool OrderTralStop(double price); /// перенос Стоп-Лосс на заданную цену, если новая цена корректна (выше текущей для Sell и ниже для Buy) и ближе существующего SL
и из неё :
/// трал стопа на фиксированной дистанции в пунктах
bool OrderTralStopPoints(long points) {
switch(OrderType()) {
case OP_BUY: return OrderTralStop(Bid-points*_Point);
case OP_SELL: return OrderTralStop(Ask+points*_Point);
}
return false;
}
оттуда внутри вашего цикла перебора ордеров просто вызвать:
OrderTralStopPoint(pointsToTral); // тралим стоп-лосс выбранных ордеров на дистанции pointsToTral
Порадуйте себя тем что код можно повторно использовать
OrderTralStop
Для меня из-за моих физических ограничений слишком сложно состыковать тот код что вы написали. Поэтому не получается разобраться как оно работает.
Но у меня есть функция трейлинг стопа по параболику.
Как эту функцию из параболика переделать в трал по пунктам, одним куском кода? без хитрых вызовов одной части кода из другой части кода?
Как эту функцию из параболика переделать в трал по пунктам, одним куском кода? без хитрых вызовов одной части кода из другой части кода?
Можно ли как-нибудь в окне свечей создать для объемов свою фиксированную независимую шкалу, в которой бы рисовались только объемы? - чтобы свечки и объемы создавались одним индикатором, а не двумя?
У меня сейчас один индикатор рисует пользовательские свечи (indicator_chart_window), а другой индикатор в отдельном окне - объемы этих свечек (indicator_separate_window). Если попытаться нарисовать объемы в окне свечек (изменить в объемах на indicator_chart_window) , то они собою перекрывают свечки.
Можно ли как-нибудь в окне свечей создать для объемов свою фиксированную независимую шкалу, в которой бы рисовались только объемы? - чтобы свечки и объемы создавались одним индикатором, а не двумя?
Надо значения объемов привязать к нижней границе графика
Если я не знаю и не понимаю как переделать, то и прошу помочь мне в этом деле...
Если я не знаю и не понимаю как переделать, то и прошу помочь мне в этом деле...
Надо значения объемов привязать к нижней границе графика
Т.е. ' ChartGetDouble(chart_ID,CHART_PRICE_MIN ..)' вернет минимальное значение цены на шкале графика, его нужно будет прибавить к минимальному значению объемов, в данном случае к нулю. Но все объемы придется перерисовывать по мере изменения значения ' ChartGetDouble(chart_ID,CHART_PRICE_MIN,..) '. Соответственно, если вручную изменять масштаб графика, то также объемы должны будут перерисовываться. Все верно?