Основной модуль логики находится в функции signals_generator()
Советник устанавливает ордера по сигналам суммы 6-ти стохастиков и BigTrend -а.
i-Regr используется как индикатор разворота.
Открытые ордера локируются (можно отключить).
Основной модуль логики находится в функции signals_generator()
Советник устанавливает ордера по сигналам суммы 6-ти стохастиков и BigTrend -а.
i-Regr используется как индикатор разворота.
Открытые ордера локируются (можно отключить).
А где стейт?
А где стейт?
Это открытый код советника, куда вы можете заложить любую свою логику. Если этот код станет основой следующей версии конструктора BlueDream, то это будет доступно и не программистам. В данном случае меня интересует вопрос не столько прибыльности, сколько функциональности кода. Хотя в полуавтоматическом режиме получилась такая картинка за две недели на демо.
однако поднявшись с 1 до 6 тыс за две недели началась пробуксовка. В данный момент эквити на уровне 3.150.
Может кто-нибудь возьмётся за его оптимизацию?
Выкладываю код реально торгующего полнофункционального советника.
Поскольку предполагается сделать его основой следующей версии конструктора BlueDream, выкладываю код здесь а не в кодобазе так как версия не окончательная, но очень хочется обсудить его недостатки.
Используемые советником индикаторы - стандартный стохастик, несколько изменённый BigTrend и как разворотный - i-Regr.
С благодарностью приму все отзывы и пожелания.
Молодца! Тема очень понравилась, на первый взгляд... :-))) Как время будет, обязательно поинтересуюсь.
Вы забыли выложить: Cannot open file \experts\indicators\iSWOL_for_ex.ex4
2011.08.16 15:48:50 2011.01.06 08:49 eProect_V3 EURUSD,H1: H1|EURUSD|Expert_V3:set_order_sellstop():_Lot= 0.01000000(131)Неправильный объем
При любым выставленном лоте и риске (У дц на котором гоняю в тестере, мин. лот 0.1)
ошибка возникает в модуле установки локирующих ордеров - set_lock()
не могу найти в чём причина.
Логика такая - вычисляем разницу лотов и доливаем стоп-приказы компенсируя разницу, однако почему-то лоты не сравниваются корректно
может кто-то увидит, в чём ошибка?
if(_Lot_SELL > _Lot_BUY+_Lot_BUYSTOP) { _Price = NormalizeDouble((High[iHighest(Symbol(),TF_Cnt_Bar_for_Lock,MODE_HIGH,_Bars_PP_OP_BUYSTOP,0)]+ Dist_For_Top*Point),Digits); if(_Price - Ask < Dist_For_Top*Point) { _Bars_PP_OP_BUYSTOP *=2; _RESET_Bars_PP_OP_BUYSTOP = false; return; } _Lot = _Lot_SELL-_Lot_BUY-_Lot_BUYSTOP; //Alert(_Lot+" "+_Lot_SELL+" "+_Lot_BUY+" "+_Lot_BUYSTOP); if(_Lot >= 0.01) _Lot = 0.01; if(_Lot >= 0.1) _Lot = 0.1; if(_Lot >= 1.0) _Lot = 1.0; if(_Lot >= 10.0) _Lot = 10.0; if(_Lot < 0.01) _Lot = 0; if(_Lot != 0) { if(set_order_buystop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1) { _RESET_Bars_PP_OP_BUYSTOP = true; } } } else if(_Lot_BUY < _Lot_SELL+_Lot_SELLSTOP) { for(_i=OrdersTotal()-1; _i>=0; _i--){ // RefreshRates(); OrderSelect(_i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol() == Symbol() && OrderCloseTime()<=0 && OrderMagicNumber() == Magic && (OrderType() == OP_SELLSTOP)) { if(OrderLots() > _Lot_Order_For_Del) { _Lot_Order_For_Del = OrderLots(); _Ticket_Order_For_Del = OrderTicket(); } } } if(OrderSelect(_Ticket_Order_For_Del,SELECT_BY_TICKET)) { if(OrderCloseTime()<= 0) { output_alert_ERR(_Function+"вызываем close_for_ticket() для закрытия OP_SELLSTOP"); if(!close_for_ticket(_Ticket_Order_For_Del)) return; _Ticket_Order_For_Del = 0; } } } //----------------- if(_Lot_BUY > _Lot_SELL+_Lot_SELLSTOP) { _Price = NormalizeDouble((Low [iLowest (Symbol(),TF_Cnt_Bar_for_Lock,MODE_LOW, _Bars_PP_OP_SELLSTOP,0)]- Dist_For_Boot*Point),Digits); if(Bid - _Price < Dist_For_Boot*Point) { _Bars_PP_OP_SELLSTOP *=2; _RESET_Bars_PP_OP_SELLSTOP = false; return; } _Lot = _Lot_BUY-_Lot_SELL-_Lot_SELLSTOP; if(_Lot >= 0.01) _Lot = 0.01; if(_Lot >= 0.1) _Lot = 0.1; if(_Lot >= 1.0) _Lot = 1.0; if(_Lot >= 10.0) _Lot = 10.0; if(_Lot < 0.01) _Lot = 0; if(_Lot != 0) { if(set_order_sellstop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1){ _RESET_Bars_PP_OP_SELLSTOP = true; _Lot = 0; } } } else if(_Lot_SELL < _Lot_BUY+_Lot_BUYSTOP) { for(_i=OrdersTotal()-1; _i>=0; _i--){ // RefreshRates(); OrderSelect(_i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol() == Symbol() && OrderCloseTime()<=0 && OrderMagicNumber() == Magic && (OrderType() == OP_BUYSTOP)) { if(OrderLots() > _Lot_Order_For_Del) { _Lot_Order_For_Del = OrderLots(); _Ticket_Order_For_Del = OrderTicket(); } } } if(OrderSelect(_Ticket_Order_For_Del,SELECT_BY_TICKET)) { if(OrderCloseTime()<= 0) { output_alert_ERR(_Function+"вызываем close_for_ticket() для закрытия OP_BUYSTOP"); if(!close_for_ticket(_Ticket_Order_For_Del)) return; _Ticket_Order_For_Del = 0; } } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Выкладываю код реально торгующего полнофункционального советника.
Поскольку предполагается сделать его основой следующей версии конструктора советиков BlueDream, выкладываю код здесь а не в кодобазе так как версия не окончательная, но очень хочется обсудить его недостатки.
Используемые советником индикаторы - стандартный стохастик, несколько изменённый BigTrend и как разворотный - i-Regr.
С благодарностью приму все отзывы и пожелания.
зы: хотелось бы получить замечания по библиотекам, в данном случае они включены в код, особенно по локированию ордеров. Почему-то локи иногда перестают тралится вне зависимости от логики советника, однако при переустановке подтягиваются до заданных значений.
Советник нужно ставить на минутку, хотя это не пипсовщик.