- [АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3.
- FOREX - Тенденции, прогнозы и следствия (Эпизод № 26: Июнь 2013) Продолжение следует...
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Всем привет. Как прописать следующий момент. Чтобы в "н" ценовой области открывались сделки одним лотом (по сигналу), а при достижении "н" просадки от самого крайнего ордера, сделки открывались увеличенным лотом?
Исчерпывающе)) Я могу только шаг сетки прописать. А вот чтобы в определенном диапазоне работал один лот, вне зависимости сколько сделок и насколько (допустимо) просела самая невыгодная позиция... усреднения должны включаться, только при определенной просадке в пунктах от самой крайней, не получается нифига(
Исчерпывающе)) Я могу только шаг сетки прописать. А вот чтобы в определенном диапазоне работал один лот, вне зависимости сколько сделок и насколько (допустимо) просела самая невыгодная позиция... усреднения должны включаться, только при определенной просадке в пунктах от самой крайней, не получается нифига(
И по одной решайте.
<<< при достижении "н" просадки от самого крайнего ордера, сделки открывались увеличенным лотом>>>
тут ведь только две функции нужно закодить.
1. найти "крайний ордер"
2. найди дистанцию от текущей цены до цены открытия этого ордера.
каждая из них решается очень легко
Вот блок интересующих вас функций:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int FindOrderType() { int oticket,ticketNumber=0,type=0; for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { oticket=OrderTicket(); if(oticket>ticketNumber) { ticketNumber=oticket; type=OrderType(); } } } } return(type); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double FindLastBuyPrice() { int oticket,ticketNumber=0; double oprice=0; for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==Magic) { oticket=OrderTicket(); if(oticket>ticketNumber) { ticketNumber=oticket; oprice=OrderOpenPrice(); } } } } return(oprice); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double FindLastSellPrice() { int oticket,ticketNumber=0; double oprice=0; for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==Magic) { oticket=OrderTicket(); if(oticket>ticketNumber) { ticketNumber=oticket; oprice=OrderOpenPrice(); } } } } return(oprice); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Lot() { double lot=Lots; if(CountTrades()>0) lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2); if(lot>MaxLot)lot=Lots; return(lot); }
И реализация в онтик:
int otype=FindOrderType(); if((CountTrades()<1 && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin) && BuySell==1) || (CountTrades()<=MaxTrades && otype==0 && (FindLastBuyPrice()-Ask)/Point>=Step)) { PutOrder(0,Ask); ModifyOrders(); } if((CountTrades()<1 && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin) && BuySell==2) || (CountTrades()<=MaxTrades && otype==1 && (Bid-FindLastSellPrice())/Point>=Step)) { PutOrder(1,Bid); ModifyOrders(); }
Также наберите в поиске: усреднитель видео, там есть подробный урок.
Всем привет. Как прописать следующий момент. Чтобы в "н" ценовой области открывались сделки одним лотом (по сигналу), а при достижении "н" просадки от самого крайнего ордера, сделки открывались увеличенным лотом?
lot = экспонента от просадки * K
K считается от возможностей депо и вероятностых(статистических) характеристик стратегии
Спасибо всем огромное за вашу отзывчивость!!!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования