То есть на реале он работать не будет?
Просто вынос мозга )))
Но нашел совершенно лишние строчки кода:
if (OrderType()==OP_BUY) buy=true; if (OrderType()==OP_BUYSTOP) sell=true;
Не пойму только пока что - где тут собака порылась? )))
// Может д.б. так? //+------------------------------------------------------------------+ //| Return.mq4 | //| Copyright © 2011, AM2 | //| http://www.forexsystems.biz | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, AM2" #property link "http://www.forexsystems.biz" #define MAGIC 20110406 extern int StopLoss = 300; extern int TakeProfit = 50; extern int StartHour = 21; extern int Distance = 50; extern int Expiration = 4; extern double Lot = 1; //+------------------------------------------------------------------+ int start() { int b=0,s=0,res; bool buy=false,sell=false; double BuyPrice=Close[1]-Distance*Point; double SellPrice=Close[1]+Distance*Point; datetime expiration = TimeCurrent()+3600*Expiration; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)==true) { if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue; if (OrderType()==OP_BUY) buy=true; if (OrderType()==OP_SELL) sell=true; if (OrderType()==OP_BUYLIMIT) b++; if (OrderType()==OP_SELLLIMIT) s++; } } if (Hour()==StartHour&&b<1&&!buy) { res=OrderSend(Symbol(),OP_BUYLIMIT,Lot,BuyPrice,3,BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point,"",MAGIC,expiration,Blue); } if (Hour()==StartHour&&s<1&&!sell) { res=OrderSend(Symbol(),OP_SELLLIMIT,Lot,SellPrice,3,SellPrice+StopLoss*Point,SellPrice-TakeProfit*Point,"",MAGIC,expiration,Red ); } //---- return(0); } //+------------------------------------------------------------------+
Flax:
Спасибо, поправил.Просто вынос мозга )))
Но нашел совершенно лишние строчки кода:
if (OrderType()==OP_BUY) buy=true; if (OrderType()==OP_BUYSTOP) sell=true;
Не пойму только пока что - где тут собака порылась? )))
if (OrderType()==OP_SELL) sell=true;
peter888:
То есть на реале он работать не будет?
То есть на реале он работать не будет?
Для реала нужно дорабатывать и тестить на демо и затем на микро.
немного поправил и добавил
//+------------------------------------------------------------------+ //| Return.mq4 | //| Copyright © 2011, AM2 | //| http://www.forexsystems.biz | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, AM2" #property link "http://www.forexsystems.biz" #define MAGIC 20110406 extern int StopLoss = 300; extern int TakeProfit = 50; extern int StartHour = 21; extern int Distance = 50; extern int Expiration = 4; extern bool MM=true; extern double Lots = 0.01; extern double TSP=5; bool buy,sell; //+------------------------------------------------------------------+ int start() { int b=0,s=0,res; double BuyPrice=fND(Ask-Distance*Point); double SellPrice=fND(Bid+Distance*Point); datetime expiration = TimeCurrent()+3600*Expiration; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)) { if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue; if (OrderType()==OP_BUY || OrderType()==OP_BUYLIMIT) b++; if (OrderType()==OP_SELL || OrderType()==OP_SELLLIMIT) s++; } } if (Hour()!=StartHour) {buy=false; sell=false;} if (Hour()==StartHour && !buy && b<1 && DayOfWeek() != 5) { res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),BuyPrice,3,fND(BuyPrice-StopLoss*Point),fND(BuyPrice+TakeProfit*Point),"",MAGIC,expiration,Blue); if (res>0) buy=true; } if (Hour()==StartHour && !sell && s<1 && DayOfWeek() != 5) { res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),SellPrice,3,fND(SellPrice+StopLoss*Point),fND(SellPrice-TakeProfit*Point),"",MAGIC,expiration,Red ); if (res>0) sell=true; } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double fLots() { double lot=Lots; double lot_min =MarketInfo( Symbol(), MODE_MINLOT ); double lot_max =MarketInfo( Symbol(), MODE_MAXLOT ); if (MM) { double lot_step =MarketInfo( Symbol(), MODE_LOTSTEP ); double lotcost =MarketInfo( Symbol(), MODE_TICKVALUE ); double dollarsPerPip=0.0; lot = AccountFreeMargin()*TSP/100.0; dollarsPerPip=lot/StopLoss; lot=fND(dollarsPerPip/lotcost, 2); lot=fND(lot/lot_step, 0) * lot_step; } if (lot<lot_min) lot=lot_min; if (lot>lot_max) lot=lot_max; return(lot); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double fND(double d, int n=-1) { if (n<0) return(NormalizeDouble(d, Digits)); return(NormalizeDouble(d, n)); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+
вот что получилось
Tiburond:
немного поправил и добавил
Еще обработку ошибок добавить и вперед искать ДЦ где такое возможно :-)
Также в некоторых ДЦ нельзя сразу тейк и лось выставить. Приходится модификацией.
Доработаем.
А стратегию можно поподробнее описать ?
+ Он все время сначала вверх идет, а потом все сливает быстро както ....
+ Он все время сначала вверх идет, а потом все сливает быстро както ....
Прогони на парах с йеной, за последние месяцы, удивишься ))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Cоветник Return:
Author: Andrew Kornishkin