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

 
Konstantin:

спасибо за пример, но создавать объект сложного типа из-за одного массива как раз и не хотелось бы, все это напоминает излишний код ))


Что за детский бред со сложными типами? Это элементарщина.
Вы тут про С++ вспоминали, а хоть раз заглядывали в STL библиотеку? (вот там черт ногу сломит).

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

Использование класса обертки под некую библиотеку, а иногда и стандартный функционала, - это грубо говоря вариация на патерн "фасад".

 

В MQL есть своя стандартная библиотека с контейнерами. 
Использовал когда фрилансил - года 2 назад. Не очень быстрая и не очень удобная, по личному мнению.

Но сейчас в функционал языка MQL добавили адекватные Templates + Function pointers.
Имеются сомнения, что разработчиками были выделены ресурсы на причесывание стандартной библиотеки контейнеров под новые возможности.
Но все же стандартная библиотека лучше, чем большинство самописных костылей.

 
Sergey Dzyublik:


Что за детский бред со сложными типами? Это элементарщина.
Вы тут про С++ вспоминали, а хоть раз заглядывали в STL библиотеку? (вот там черт ногу сломит).

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

Использование класса обертки под некую библиотеку, а иногда и стандартный функционала, - это грубо говоря вариация на патерн "фасад".


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

 

Прошу на Metaquotes-Demo по биржевым инструментам ввести среднюю для MOEX-брокеров комиссию для биржевых символов.

На данный момент комиссии нет и получаются граали на демо и тестере.

 
fxsaber:

Прошу на Metaquotes-Demo по биржевым инструментам ввести среднюю для MOEX-брокеров комиссию для биржевых символов.

На данный момент комиссии нет и получаются граали на демо и тестере.


на демо на биржевых инструментах включение комиссии вам не поможет избавиться ог грааля- в общем-то там комиссия зависит от тарифа, ну,предположим,что она,как в тарифе универсальный,примерно 0.5 тика,т.е. за круг вы отдали комис=1тику.

и этот 1 тик комиссии погоды не сделает с учетом того, что на демо сделки открываются и закрываются по ласт,т.е. без учета спреда. откройте и сразу закройте сделку - получите на выходе 0!

с тестером там тоже своя ботва.

 
kaus_bonus:


на демо на биржевых инструментах включение комиссии вам не поможет избавиться ог грааля- в общем-то там комиссия зависит от тарифа, ну,предположим,что она,как в тарифе универсальный,примерно 0.5 тика,т.е. за круг вы отдали комис=1тику.

Не понял про тики. Размер комиссии - это определенный процент всегда. У меня грааль на лимитных ордерах. Там, надеюсь, ласты не влияют.

и этот 1 тик комиссии погоды не сделает с учетом того, что на демо сделки открываются и закрываются по ласт,т.е. без учета спреда. откройте и сразу закройте сделку - получите на выходе 0!

с тестером там тоже своя ботва.

Если так, то это баг не в ПО, а в головах.

 
Похоже, тестер надо проверять на корректность.
 
fxsaber:
Похоже, тестер надо проверять на корректность.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Список изменений в билдах MetaTrader 5 Client Terminal

MetaQuotes Software Corp., 2016.09.14 16:24

Новая версия платформы MetaTrader 5 build 1430: Обновленная вкладка Exposure

  1. Tester: Убрано проскальзывание исполнения ордеров Buy Limit и Sell Limit при тестировании на биржевых инструментах.
Советник для тестера (Metaquotes-Demo)
#include <MT4Orders.mqh>

// Скольжение лимитника на RTS-6.17
void OnTick()
{
  MqlTick Tick;    
  SymbolInfoTick(_Symbol, Tick);

// 2017.04.06 10:00:00                [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]  
// 2017.04.06 10:00:00   2017.04.06 10:00:00  114200  114260  114200        2 1491472800335      56  
  if (Tick.time_msc == 1491472800335)
    OrderSend(_Symbol, OP_BUYLIMIT, 1, 114250, 0, 0, 0);
}

Результат

2017.04.07 18:18:45.366 RTS-6.17 : real ticks begin from 2017.04.06 00:00:00
2017.04.07 18:18:45.778 2017.04.06 10:00:00   buy limit 1.00 RTS-6.17 at 114250 (114200 / 114260 / 114200)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order [#2 buy limit 1.00 RTS-6.17 at 114250] triggered
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal #2 buy 1.00 RTS-6.17 at 114240 done (based on order #2)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal performed [#2 buy 1.00 RTS-6.17 at 114240]
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order performed buy 1.00 at 114240 [#2 buy limit 1.00 RTS-6.17 at 114250]

Скольжение лимитника на биржевом символе - БАГ!

 
На демо-счете Metaquotes-Demo лимитные ордера на биржевых ордерах так же скользят. БАГ!
 
A100:

Прошло более 30 минут, а вызова OnDeinit->M5 до сих пор нет

А теперь изменим код Эксперта (слегка поменяем порядок) ...

Результат:

2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5:1                 Вызов сразу и без задержки!
2017.02.06 01:31:48.409 OnInit->M15
 


Было замечено что в логах он пропускает строки

OnDeinit - возможно сработал но при большом потоке вывода он пропускает вывод 

Я писал прогу которая содержит 3 строки Print("1"); Print("2"); Print("3");

На выводе получал пропуски то одного то другого

Причина обращения: