Ошибки, баги, вопросы - страница 112

 
sandex:

Кто использовал функцию OrderCheck.

Вот такая конструкция:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

При компиляции Получаю ошибку: 'result' - parameter conversion is not allowed.

Если убрать OrderCheck, то все компилируется нормально и в тестере открывается позиция.

Посмотрите описание функции. Там указано про структуру ответа MqlTradeCheckResult.
 
Yedelkin:
Посмотрите описание функции. Там указано про структуру ответа MqlTradeCheckResult.

Большое спасибо.

 
Dmitriy2:

А вот, что это...

Считаться должна прибыль по сделкам с указанной даты. Выдает совсем другой результат чем на самом деле. Например у меня вместо результата примерно 2000 получается 611. Начал проверять по дням(закомментированная строчка). Бывают(!!) дни когда результат совпадает, но обычно он совсем не такой какой должен быть...(закономерность найти не смог). Причем в отладчике цикл точно проходит по всему количеству сделок. Правда отследить я могу только как раз это количество сделок, потому как кроме переменных int ни у каких других не отображаются значения(пишет Expression could not be evaluated).

Правильный ли код, и правильно ли я пользуюсь отладчиком...? 

Цикл по сделкам должен быть

for(i=0;i<HistoryDealsTotal();i=i++)
В отладчике используйте 'Шаг с заходом' (F11). Тогда, при входе в функцию, где переменная или выражение определены, покажет их значение.

  

 
Valmars:

Цикл по сделкам должен быть

В отладчике используйте 'Шаг с заходом' (F11). Тогда, при входе в функцию, где переменная или выражение определены, покажет их значение.

  

 

ну допустим, что цикл с нуля... хотя где написано что номера сделок начинаются с нуля? Судя по тому что теперь получается 10611(раньше было 611,вместо примерно 2000), т.е. плюс размер первоначального депозита, то я в этом не уверен... хотя хоть ноль хоть один я все рано не понимаю откуда берутся 10000

Отладчик, понятно, F11..

 
Dmitriy2:

ну допустим, что цикл с нуля... хотя где написано что номера сделок начинаются с нуля? Судя по тому что теперь получается 10611(раньше было 611,вместо примерно 2000), т.е. плюс размер первоначального депозита, то я в этом не уверен... хотя хоть ноль хоть один я все рано не понимаю откуда берутся 10000

Отладчик, понятно, F11..

Первая сделка обычно это пополнение счета. Вроде сделки считаются в истории начинаются с 0. Таким образом если я не ошибаюсь 0-ая сделка будет пополнением счета.

Можно уточнить формулу по которой рассчитывается прибыль по сделке?

PS

Если мне память не изменяет результат должен считаться примерно так - TotalProfit = Profit+Swap-Commision;


 
Kos:
Почему SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), возвращает ноль?
0 означает отсутствие ограничений.
 
Interesting:

Первая сделка обычно это пополнение счета. Вроде сделки считаются в истории начинаются с 0. Таким образом если я не ошибаюсь 0-ая сделка будет пополнением счета.

Можно уточнить формулу по которой рассчитывается прибыль по сделке?

PS

Если мне память не изменяет результат должен считаться примерно так - TotalProfit = Profit+Swap-Commision;


 

на прошлой страничке полностью код

по коду пополнение счета в любом случае не должно считаться

комиссия так же плюсуется - она минусовая.. 

 
Yedelkin:

Сначала компилятор ругался на отсутствие "#import  "lbS7N_Servis.ex5""

После удаления этой строки выдал:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1)  L1=1016990000   L2=1016990000   L3=6617010000   M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1)  A=101699  B=101699  C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!

Когда заменил в коде номер счёта на свой, то получил:

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1)  L1=1016990000   L2=1016990000   L3=1016990000   M1=1016990000

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1)  A=101699  B=101699  C=101699

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!

Сервер MQ, билд 316. 

Спасибо. У Вас отрабатывается все как и должно быть. У себя пока не разобрался.
 
sergey1294:

 а у меня М1 не совпало

У Вас значит тоже что-то поджучивает, но меньше чем у меня.

Возможно искать надо это уже в связи программы с системой.

Что у Вас за система?

У меня core2duo   1,3 Ghz   64 Win7 HB лиценз, ОЗУ  4Гб ddr 2, билд. 316

 
simpleton:

Причём, целых три уникальных ситуации. Это - обнаруженных. А сколько не обнаруженных?

И при таком состоянии дел MetaQuotes через месяц начинает Чемпионат 2010?

О, сколько нам открытий "чудных" готовит МетаТрейдер 5...

Призерами станут те участники, в программах которых будет столько ошибок, что наложившись на незначительные глюки программы, они вместе дадут такой эффект, что никто и не догонит.
Причина обращения: