1. можно.
2. проверим.
что такое "тестирование невозможно"?
2. проверим.
что такое "тестирование невозможно"?
1. можно.
2. проверим.
что такое "тестирование невозможно"?
2. проверим.
что такое "тестирование невозможно"?
попробуте пожалуйста протестировать след.эксперта на eurusd240 за последний год.
один параметр - два значения. рез-ты должны быть одинаковы.
//+------------------------------------------------------------------+ // тест-стандарт для проветки торг.функций //(рез-тат можно посчитать вручную для сравнения) //+------------------------------------------------------------------+ //#include <meineTrade.mqh> #import "stdlib.ex4" string ErrorDescription(int error_code); #define MAGICMA 20050610 extern int UseOpenFunk=0;// =0-не использовать проверки торг.операций, >0-использовать //статические сигналы на вход eurusd240 за год int SizeB,SizeS, SignB[]={1097679060,1098967320,1102679100,1107864420,1113494460,1118798400,1120554300}, SignS[]={1098765480,1102406160,1104436020,1110551820,1114103460,1119047760}; int init() { SizeB=ArraySize(SignB); SizeS=ArraySize(SignS); return(0); } int deinit() { Print("FINISH осталось ордеров=",OrdersTotal()); return(0); } void start() { int b=ChekB(); err_otlov(27); int s=ChekS(); err_otlov(28); if(b>=0) {if(CheckForClose(OP_SELL)>0) return; if(UseOpenFunk>0){if(OpenBuy()>0) {SignB[b]=0; err_otlov(31); return; } } else {if(OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"",MAGICMA,0,Blue)>0) {SignB[b]=0; err_otlov(36); return; } } } err_otlov(40); if(s>=0) { if(CheckForClose(OP_BUY)>0) return; if(UseOpenFunk>0) {if(OpenSell()>0) {SignB[s]=0; err_otlov(44); return; } } else {if(OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"",MAGICMA,0,Red)>0) {SignS[s]=0; err_otlov(49); return; } } } err_otlov(53); } //+------------------------------------------------------------------+ //| проверим BUY | //+------------------------------------------------------------------+ int ChekB() { for(int i=0; i<SizeB; i++) if(SignB[i]>0)if(CurTime()>SignB[i]) return(i); err_otlov(67); return(-1); } //+------------------------------------------------------------------+ //| проверим SELL | //+------------------------------------------------------------------+ int ChekS() { for(int i=0; i<SizeS; i++) if(SignS[i]>0)if(CurTime()>SignS[i]) return(i); err_otlov(65); return(-1); } //+------------------------------------------------------------------+ //| проверим CLOSE | //+------------------------------------------------------------------+ int CheckForClose(int tip) { for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue; if(OrderType()==tip) { if(tip==OP_BUY) if(OrderClose(OrderTicket(),OrderLots(),Bid,3,White)==true) return(1); if(tip==OP_SELL) if(OrderClose(OrderTicket(),OrderLots(),Ask,3,White)==true) return(1); } } err_otlov(88); return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Открыть новый рыночный Ордер (либо-BUY либо-SELL) | //+------------------------------------------------------------------+ int OpenBuy() { return(OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"",MAGICMA,0,Blue)); } int OpenSell() { return(OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"",MAGICMA,0,Red)); } //+------------------------------------------------------------------+ //| отлов ошибок | //+------------------------------------------------------------------+ bool err_otlov(int stroka) { int er_=GetLastError(); if(er_>0){Print("TestTest стр.",stroka,": ERROR=",er_," /",ErrorDescription(er_)); return(false);} return(true); }
ошибка у Вас.
if(UseOpenFunk>0) {if(OpenSell()>0) {SignB[s]=0; err_otlov(44); return; } } else {if(OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"",MAGICMA,0,Red)>0) {SignS[s]=0; err_otlov(49); return; } }
во второй строке замените SignB на SignS
ошибка у Вас.
...
Извените, что отнял время.
...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
if(OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"",MAGICMA,0,Blue)>0)
на строку
if(OpenBuy()>0)
плюс функция
int OpenBuy() { return(OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"",MAGICMA,0,Blue)); }
тестирование не возможно.
Build177