Тестер и отладка.
Подробностей бы побольше.....(код, логи, сервер, настройки и т.д.)
Подробности.
Код советника.
/********************************************************************\ //| !Test.mq5 | //| Viktorov | //| v4forex@qip.ru | \********************************************************************/ #property copyright "Viktorov" #property link "v4forex@qip.ru" #property version "1.00" #include <Trade\Trade.mqh> input double lot = 0.1; // Лот первого ордера input int Take = 10; // TakeProfit ENUM_DEAL_TYPE trans_type; ulong trans_deal, Tikcet; double point, FirstOpenPrice, TakeProfit, SecondOpenPrice, MaxPrice , MinPrice, SecondTake; bool NewStart; CTrade Trade; MqlTradeResult v_res, v_result; MqlTradeTransaction v_Trans; /*******************Expert initialization function*******************/ int OnInit() { point = _Digits%2 == 0 ? _Point : _Point * 10; NewStart = true; return(INIT_SUCCEEDED); }/*******************************************************************/ /************************Expert tick function************************/ void OnTick() { if(NewStart) { OpenPositionsSymbol(ORDER_TYPE_BUY); NewStart = false; } }/*******************************************************************/ /*********************TradeTransaction function**********************/ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { ENUM_TRADE_TRANSACTION_TYPE type = (ENUM_TRADE_TRANSACTION_TYPE)trans.type; Print(EnumToString(type)); }/*******************************************************************/ bool OpenPositionsSymbol(ENUM_ORDER_TYPE FirstOrderType) { MqlTradeRequest v_Request; MqlTradeCheckResult check; ZeroMemory(check); ZeroMemory(v_result); bool resOp = false; uint Check = 0; int i, Total = PositionsTotal(); for(i = 0; i < Total; i++) { if(PositionGetSymbol(i) == _Symbol) return(false); } FirstOpenPrice = FirstOrderType == ORDER_TYPE_BUY ? SymbolInfoDouble(_Symbol, SYMBOL_ASK) : SymbolInfoDouble(_Symbol, SYMBOL_BID); TakeProfit = FirstOrderType == ORDER_TYPE_BUY ? NormalizeDouble(FirstOpenPrice+Take*point, _Digits) : NormalizeDouble(FirstOpenPrice-Take*point, _Digits); if(!OrderCheck(v_Request, check)) { Print("Ордер не может быть поставлен ", check.retcode); return(false); } resOp = Trade.PositionOpen(Symbol(), FirstOrderType, lot, FirstOpenPrice, 0.0, TakeProfit); if(!resOp) { Print("resOp ", GetLastError(), " Check ", Check); return(false); } return(true); }/*******************************************************************/ /******************Expert deinitialization function******************/ void OnDeinit(const int reason) { Comment(""); }/*******************************************************************/
Лог тестера
QL 0 11:38:23.878 Startup MetaTester 5 build 1062 (29 Jan 2015) CF 0 11:38:23.878 Server MetaTester 5 started on 127.0.0.1:3000 GL 0 11:38:23.878 OpenCL Device #0: GPU Advanced Micro Devices, Inc. Turks with OpenCL 1.1 (6 units, 800 MHz, 512 Mb, version CAL 1.4.1353, rating 83) MQ 0 11:38:23.878 Startup initialization finished HD 0 11:38:24.988 127.0.0.1 login (build 1062) QE 0 11:38:25.008 Tester template file tester.tpl added. 2348 bytes loaded IJ 0 11:38:25.008 Network 38240 bytes of group info loaded DR 0 11:38:25.008 Network 1478 bytes of tester parameters loaded MG 0 11:38:25.008 Network 1208 bytes of input parameters loaded OO 0 11:38:25.008 Network 6646 bytes of symbols list loaded EF 0 11:38:25.008 Tester expert file added: Experts\Test\!Test.ex5. 26546 bytes loaded LQ 0 11:38:25.008 Tester initial deposit 10000.00 USD, leverage 1:100 HG 0 11:38:25.008 Tester successfully initialized QS 0 11:38:25.008 Network 57 Kb of total initialization data received PH 0 11:38:25.008 Tester AMD FX-4170 Quad-Core Processor , 12255 MB IL 0 11:38:25.008 Symbols EURUSD: symbol to be synchronized IK 0 11:38:25.008 Symbols EURUSD: symbol synchronized, 3384 bytes of symbol info received OL 0 11:38:25.008 History EURUSD: history synchronization started MG 0 11:38:25.008 History EURUSD: load 27 bytes of history data to synchronize EH 0 11:38:25.008 History EURUSD: history synchronized from 2013.01.01 to 2015.01.30 IM 0 11:38:25.008 History EURUSD,M15: contains 25445 bars of beginning data from 2013.01.01 23:00 to 2014.01.14 23:45 LP 0 11:38:25.008 History EURUSD,M15: history cache reserved for estimated 52114 bars OH 0 11:38:25.008 History EURUSD,M15: history begins from 2013.01.01 23:00 IM 0 11:38:25.008 Tester EURUSD,M15 (MetaQuotes-Demo): every tick generating PN 0 11:38:25.008 Tester testing with execution random delay HJ 0 11:38:25.008 Tester EURUSD,M15: testing of Experts\Test\!Test.ex5 from 2014.01.15 00:00 to 2015.01.31 00:00 started with inputs: NJ 0 11:38:25.008 Tester lot=0.10 JD 0 11:38:25.008 Tester Take=10 NR 0 11:38:25.008 Trade 2014.01.15 00:00:06 price corrected from 1.36737 to 1.36741, deviation: 10 (instant buy 0.10 EURUSD at 1.36737 tp: 1.36837)(1.36732 / 1.36741 / 1.36732) QG 0 11:38:25.008 Trade 2014.01.15 00:00:06 instant buy 0.10 EURUSD at 1.36741 tp: 1.36837 (1.36732 / 1.36741 / 1.36732) KG 0 11:38:25.008 Trades 2014.01.15 00:00:06 deal #2 buy 0.10 EURUSD at 1.36741 done (based on order #2) NO 0 11:38:25.008 Trade 2014.01.15 00:00:06 deal performed [#2 buy 0.10 EURUSD at 1.36741] OM 0 11:38:25.008 Trade 2014.01.15 00:00:06 order performed buy 0.10 at 1.36741 [#2 buy 0.10 EURUSD at 1.36741] HQ 0 11:38:25.008 !Test (EURUSD,M15) 2014.01.15 00:00:06 CTrade::OrderSend: instant buy 0.10 EURUSD at 1.36737 tp: 1.36837 [done at 1.36741] HS 0 11:38:25.008 !Test (EURUSD,M15) 2014.01.15 00:00:06 TRADE_TRANSACTION_DEAL_ADD CG 0 11:38:25.008 !Test (EURUSD,M15) 2014.01.15 00:00:06 TRADE_TRANSACTION_ORDER_DELETE HK 0 11:38:25.008 !Test (EURUSD,M15) 2014.01.15 00:00:06 TRADE_TRANSACTION_HISTORY_ADD LS 0 11:38:25.008 !Test (EURUSD,M15) 2014.01.15 00:00:06 TRADE_TRANSACTION_REQUEST JK 3 11:38:42.938 Tester stopped by user MO 0 11:38:42.938 Trade 2014.01.15 00:11:02 position closed due end of test at 1.36744 [buy 0.10 EURUSD 1.36741 tp: 1.36837] CS 0 11:38:42.938 Trades 2014.01.15 00:11:02 deal #3 sell 0.10 EURUSD at 1.36744 done (based on order #3) KM 0 11:38:42.938 Trade 2014.01.15 00:11:02 deal performed [#3 sell 0.10 EURUSD at 1.36744] NJ 0 11:38:42.938 Trade 2014.01.15 00:11:02 order performed sell 0.10 at 1.36744 [#3 sell 0.10 EURUSD at 1.36744] RF 0 11:38:42.938 Tester final balance 10000.30 GP 0 11:38:42.938 Tester OnTester result 0 LF 0 11:38:42.938 Tester EURUSD,M15: 182 ticks (1 bars) generated within 17877 ms (total bars in history 25446, total time 17955 ms) ED 0 11:38:42.938 Tester 292 Mb memory used LK 0 11:38:42.938 Tester log file "D:\MetaTrader 5\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20150204.log" written QJ 0 11:38:43.008 Tester tester agent shutdown started GM 0 11:38:43.008 Tester shutdown tester machine
Лог терминала
HL 0 11:34:30.997 !Test (EURUSD,M15) Ордер не может быть поставлен 10013 OI 2 11:34:55.808 !Test (EURUSD,M15) debugging terminated
AlexeyVik:
Подробности.
Это что, шутка такая? Вы передаете незаполненный v_Request, отсюда и ошибка. А вот почему это прокатывает в тестере - вопрос очень интересный!
if(!OrderCheck(v_Request, check))
VDev:
Это что, шутка такая? Вы передаете незаполненный v_Request, отсюда и ошибка. А вот почему это прокатывает в тестере - вопрос очень интересный!
Ну да... Спасибо.
Я уж сначала подумал что вписал это после тестирования... ан нет... сейчас перепроверил, в тестере прокатывает.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может кто сталкивался с такой проблемой в МТ5, в тестере ордера открываются, а запускаю отладку, не проходит проверку с ошибкой 10013, "Неправильный запрос"
Пробовал ставить и со стопами и без стопов... никакой разницы.