Протестирую и оптимизирую вашего эксперта. Если понравиться
готов купить :))))
Я так думаю, что если понравиться, то просто не вернёшь...бесплатно
попользуешься.
что за бред ?
почему бред ?
Вот советник: протестируй, оптимизируй, но лучше в Омеге. Напиши,
каков будет результат.
//+------------------------------------------------------------------+ //| BB_2.mq4 | //| Copyright © 2006, Manin | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Manin" #property link "manin1@mail.ru" #define MAGIC 011006 // расстояние до СтопЛосса первоначального в пунктах (0 - отключить СЛ) extern int SL_SO =45; // H1:EURUSD= H4:EURUSD= M30:EURUSD= // расстояние до ТейкПрофита в пунктах (0 - отключить) extern int TP_SO =0; extern int Otstup_SL =-10; // H1:EURUSD= H4:EURUSD= M30:EURUSD= extern int Otstup_Open =10; // H1:EURUSD= H4:EURUSD= M30:EURUSD= extern int _PRICE =0; // 0-6 extern int period =11; // H1:EURUSD= H4:EURUSD= M30:EURUSD= extern double deviation =2; // H1:EURUSD= H4:EURUSD= M30:EURUSD= extern double Risk =0.0; // Часть свободных денег вкладываемых в лот extern int Slippage =5; // Проскальзывание static datetime PrevTime_OB=0; // Переменная для работы с только, что сформировавшемся баре с отложенными ордерами static datetime PrevTime_OS=0; // Переменная для работы с только, что сформировавшемся баре с отложенными ордерами static datetime PrevTime_TB=0; // Переменная для работы с только, что сформировавшемся баре с торгующими ордерами static datetime PrevTime_TS=0; // Переменная для работы с только, что сформировавшемся баре с торгующими ордерами int start() { int _OrderTicket_BS_BB_2=0;// Ticket ордера BuyStop int _OrderTicket_SS_BB_2=0;// Ticket ордера SellStop int _OrderTicket_B_BB_2=0; // Ticket ордера Buy int _OrderTicket_S_BB_2=0; // Ticket ордера Sell double _OrderOpenPrice_BS_BB_2=0; double _OrderOpenPrice_SS_BB_2=0; double _OrderStopLoss_B_BB_2=0; double _OrderStopLoss_S_BB_2=0; double _OrderTakeProfit_B_BB_2=0; double _OrderTakeProfit_S_BB_2=0; double StopLoss, TakeProfit, _OrderOpenPrice, Lots, BB_0_U, BB_0_L; int z, Modify_O, Modify_T, _Ticket; BB_0_U=iBands(NULL,0,period,deviation,0,_PRICE,MODE_UPPER,0); BB_0_L=iBands(NULL,0,period,deviation,0,_PRICE,MODE_LOWER,0); //+------------------------------------------------------------------+ //| Блок управления ордерами | //+------------------------------------------------------------------+ if (OrdersTotal()!=0) // { for (z=OrdersTotal()-1; z>=0; z --) { OrderSelect ( z, SELECT_BY_POS ); if (OrderSymbol()!=Symbol()) continue; if (OrderMagicNumber()!=MAGIC) continue; if (OrderType()==OP_BUYSTOP) { _OrderTicket_BS_BB_2=OrderTicket(); _OrderOpenPrice_BS_BB_2=OrderOpenPrice(); if (PrevTime_OB!=Time[0] && _OrderOpenPrice!=NormalizeDouble(BB_0_U+Otstup_Open*Point,Digits)) // { _OrderOpenPrice=NormalizeDouble(BB_0_U+Otstup_Open*Point,Digits); StopLoss=NormalizeDouble(BB_0_L,Digits); if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice+TP_SO*Point,Digits); } else { TakeProfit=0.0; } Modify_O=OrderModify(_OrderTicket_BS_BB_2,_OrderOpenPrice,StopLoss,TakeProfit,0,Blue); if(Modify_O>0) { Print("BUYSTOP ордер модифицирован: ",_OrderTicket_BS_BB_2); PrevTime_OB=Time[0]; } else Print("Ошибка модификации BUYSTOP ордера:",GetLastError()); } } if (OrderType()==OP_SELLSTOP) { _OrderTicket_SS_BB_2=OrderTicket(); _OrderOpenPrice_SS_BB_2=OrderOpenPrice(); if (PrevTime_OS!=Time[0] && _OrderOpenPrice!=NormalizeDouble(BB_0_L-Otstup_Open*Point,Digits)) // { _OrderOpenPrice=NormalizeDouble(BB_0_L-Otstup_Open*Point,Digits); StopLoss=NormalizeDouble(BB_0_U,Digits); if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice-TP_SO*Point,Digits); } else { TakeProfit=0.0; } Modify_O=OrderModify(_OrderTicket_SS_BB_2,_OrderOpenPrice,StopLoss,TakeProfit,0,Red); if(Modify_O>0) { Print("SELLSTOP ордер модифицирован:",_OrderTicket_SS_BB_2); PrevTime_OS=Time[0]; } else Print("Ошибка модификации SELLSTOP ордера:",GetLastError()); } } if(OrderType()==OP_BUY) { _OrderStopLoss_B_BB_2=OrderStopLoss(); _OrderTicket_B_BB_2=OrderTicket(); _OrderTakeProfit_B_BB_2=OrderTakeProfit(); if (PrevTime_TB!=Time[0] && _OrderStopLoss_B_BB_2!=NormalizeDouble(BB_0_L+Otstup_SL*Point,Digits)) { Modify_T=OrderModify(OrderTicket(),0,NormalizeDouble(BB_0_L+Otstup_SL*Point,Digits),_OrderTakeProfit_B_BB_2,0,Yellow); if(Modify_T>0) { Print("BUY ордер модифицирован:",_OrderTicket_B_BB_2); PrevTime_TB=Time[0]; } else Print("Ошибка модификации BUY ордера:",GetLastError()); } } if(OrderType()==OP_SELL) { _OrderStopLoss_S_BB_2=OrderStopLoss(); _OrderTicket_S_BB_2=OrderTicket(); _OrderTakeProfit_S_BB_2=OrderTakeProfit(); if (PrevTime_TS!=Time[0] && _OrderStopLoss_S_BB_2!=NormalizeDouble(BB_0_U-Otstup_SL*Point,Digits)) { Modify_T=OrderModify(OrderTicket(),0,NormalizeDouble(BB_0_U-Otstup_SL*Point,Digits),_OrderTakeProfit_S_BB_2,0,Yellow); if(Modify_T>0) { Print("SELL ордер модифицирован: ",_OrderTicket_S_BB_2); PrevTime_TS=Time[0]; } else Print("Ошибка модификации SELL ордера:",GetLastError()); } } continue; } } //+------------------------------------------------------------------+ //| Блок открытия ордеров | //+------------------------------------------------------------------+ if(AccountFreeMargin()<100) //Проверяем свободные средства { Comment("Нет денег. Свободная маржа=", AccountFreeMargin()," Открытые ордера=",OrdersTotal()); return(0); } // Открываем BUYSTOP позицию ------------------------------------------------------------------------ if (_OrderTicket_BS_BB_2==0 && BB_0_L<Ask && BB_0_U>Ask && _OrderTicket_B_BB_2==0) { _OrderOpenPrice=NormalizeDouble(BB_0_U,Digits)+Otstup_Open*Point; Lots=NormalizeDouble(AccountFreeMargin()*Risk/1000.0,1); //Расчитываем размер лота if(Lots<0.1) Lots=0.1; StopLoss=NormalizeDouble(BB_0_L,Digits); if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice+TP_SO*Point,Digits); } else { TakeProfit=0.0; } _Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,_OrderOpenPrice,Slippage,StopLoss,TakeProfit,"BB_2 Купили",MAGIC,0,Blue); if(_Ticket>0) { Print("BUYSTOP ордер выставлен"); } else Print("Ошибка выставления BUYSTOP ордера:",GetLastError()); } // Открываем SELLSTOP позицию ------------------------------------------------------------------------ if (_OrderTicket_SS_BB_2==0 && BB_0_L<Bid && BB_0_U>Bid && _OrderTicket_S_BB_2==0) { _OrderOpenPrice=NormalizeDouble(BB_0_L,Digits)-Otstup_Open*Point; // Lots=NormalizeDouble(AccountFreeMargin()*Risk/1000.0,1); //Расчитываем размер лота if(Lots<0.1) Lots=0.1; StopLoss=NormalizeDouble(BB_0_U,Digits); if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice-TP_SO*Point,Digits); } else { TakeProfit=0.0; } _Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,_OrderOpenPrice,Slippage,StopLoss,TakeProfit,"BB_2 Продали",MAGIC,0,Red); if(_Ticket>0) { Print("SELLSTOP ордер выставлен"); } else Print("Ошибка выставления SELLSTOP ордера:",GetLastError()); } //------------------------------------------------------------------------------------------------------------ return(0); }
хорошо.... на чем уже давал + результаты валюта и период ?
Проверяй, не жалко...
//+------------------------------------------------------------------+ //| Moving Average.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| https://www.metaquotes.net// | //+------------------------------------------------------------------+ #define MAGICMA 20050610 extern double Lots = 0.1; extern double MaximumRisk = 0.02; extern double DecreaseFactor = 3; extern double Stop_Loss = 12; extern double Take_Profit = 12; //+------------------------------------------------------------------+ //| Подсчет количества открытых ордеров | //+------------------------------------------------------------------+ int CalculateCurrentOrders(string symbol) { int buys=0,sells=0; //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //---- return orders volume if(buys>0) return(buys); else return(-sells); } //+------------------------------------------------------------------+ //| Расчет оптимального размера лота | //+------------------------------------------------------------------+ double LotsOptimized() { double lot=Lots; int orders=HistoryTotal(); // history orders total int losses=0; // number of losses orders without a break //---- select lot size lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- calcuulate number of losses orders without a break if(DecreaseFactor>0) { for(int i=orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue; //---- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1); } //---- return lot size if(lot<0.1) lot=0.1; return(lot); } //+------------------------------------------------------------------+ //| Расчет индикатора FATL | //+------------------------------------------------------------------+ double Fatl(int shift) { double fatl; fatl=+0.4360409450*Close[shift+0] +0.3658689069*Close[shift+1] +0.2460452079*Close[shift+2] +0.1104506886*Close[shift+3] -0.0054034585*Close[shift+4] -0.0760367731*Close[shift+5] -0.0933058722*Close[shift+6] -0.0670110374*Close[shift+7] -0.0190795053*Close[shift+8] +0.0259609206*Close[shift+9] +0.0502044896*Close[shift+10] +0.0477818607*Close[shift+11] +0.0249252327*Close[shift+12] -0.0047706151*Close[shift+13] -0.0272432537*Close[shift+14] -0.0338917071*Close[shift+15] -0.0244141482*Close[shift+16] -0.0055774838*Close[shift+17] +0.0128149838*Close[shift+18] +0.0226522218*Close[shift+19] +0.0208778257*Close[shift+20] +0.0100299086*Close[shift+21] -0.0036771622*Close[shift+22] -0.0136744850*Close[shift+23] -0.0160483392*Close[shift+24] -0.0108597376*Close[shift+25] -0.0016060704*Close[shift+26] +0.0069480557*Close[shift+27] +0.0110573605*Close[shift+28] +0.0095711419*Close[shift+29] +0.0040444064*Close[shift+30] -0.0023824623*Close[shift+31] -0.0067093714*Close[shift+32] -0.0072003400*Close[shift+33] -0.0047717710*Close[shift+34] +0.0005541115*Close[shift+35] +0.0007860160*Close[shift+36] +0.0130129076*Close[shift+37] +0.0040364019*Close[shift+38]; return(fatl); } //+------------------------------------------------------------------+ //| Открытие ордера | //+------------------------------------------------------------------+ void CheckForOpen() { double fatl_0; double fatl_1; double fatl_2; double fatl_3; int res; //---- go trading only for first tiks of new bar if(Volume[0]>1) return; //---- fatl_0=Fatl(0); fatl_1=Fatl(1); fatl_2=Fatl(2); fatl_3=Fatl(3); //---- sell conditions if((fatl_3<fatl_2) && (fatl_1<fatl_2)) { res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red); return; } //---- buy conditions if((fatl_3>fatl_2) && (fatl_1>fatl_2)) { res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue); return; } //---- } //+------------------------------------------------------------------+ //| Закрытие ордера | //+------------------------------------------------------------------+ void CheckForClose() { double fatl_0; double fatl_1; double fatl_2; double fatl_3; //---- go trading only for first tiks of new bar if(Volume[0]>1) return; //---- fatl_0=Fatl(0); fatl_1=Fatl(1); fatl_2=Fatl(2); fatl_3=Fatl(3); //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue; //---- check order type if(OrderType()==OP_BUY) { if(((Bid-OrderOpenPrice())<-Stop_Loss/10000) || ((Bid-OrderOpenPrice())>Take_Profit/10000)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,White); return; } if((fatl_3<fatl_2) && (fatl_1<fatl_2)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,White); return; } break; } if(OrderType()==OP_SELL) { if(((OrderOpenPrice()-Ask)<-Stop_Loss/10000) || ((OrderOpenPrice()-Ask)>Take_Profit/10000)) { OrderClose(OrderTicket(),OrderLots(),Ask,3,White); return; } if((fatl_3>fatl_2) && (fatl_1>fatl_2)) { OrderClose(OrderTicket(),OrderLots(),Ask,3,White); return; } break; } } //---- } //+------------------------------------------------------------------+ //| Основная функция | //+------------------------------------------------------------------+ void start() { //---- check for history and trading if(Bars<100 || IsTradeAllowed()==false) return; //---- calculate open orders by current symbol CheckForClose(); if(CalculateCurrentOrders(Symbol())==0) CheckForOpen(); //---- } //+------------------------------------------------------------------+
EURUSD H1
Мне вообще интересно в реале он с профитом сможет торговать? Что такое "матожидание выйгрыша", насколько я понял значение меньше 15 - плохое значение. Получается, что торгуешь против ДЦ, а они и обидеться могут.
У меня стоит системка на реале профит фактор 1.7 мат.ожидание
6,средняя прибыльная сделка 11.(лот 0.1 постоянный)
Уж и не знаю,пипсовка ли это или нет.. Но вроде пока что никаких
проблем мне не делают...
Поживем увидим... и вообще может кто нибудь знает какие советники
не выгодны брокерам??
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь