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

Vitaly Muzichenko:

А в mql5 как?

Нет подобного механизма

Непонятно

struct String {};
String f1() { String s; return s; }
string f2() { string s; return s; }
void   g1( String& ) {}
void   g2( string& ) {}
void OnStart()
{
        g1(f1()); //нормально
        g2(f2()); //Error: 'f2' - parameter passed as reference, variable expected
}

В первом случае - нормально, во втором - ошибка при компиляции. А какая разница?  

Ключевые слова неправильно работают в препроцессоре

//#define struct class 
struct A {
#ifdef struct
public:
        void f( A* ) {} //Error ???
#else
        void f( A& ) {}
#endif
};
//#define string String 
void OnStart()
{
#ifdef string
        Print( 1 );
#else
        Print( 2 );
#endif
}

Результат:   1

Ожидалось: 2

Vladimir Karputov:

Об этой ошибке знают и исправляют. Сам жду.

Что то долго исправляют https://www.mql5.com/ru/forum/216476/page7#comment_5834235 

Там было

#include <Controls\WndContainer.mqh>
class Rect {};

Здесь

#include <Trade/Trade.mqh>
class Entry {};
а сама заявка #1660355 по сути была уже больше года назад https://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...

Предлагаю в OnTesterInit дать возможность указания основного символа тестирования

enum ENUM_TESTER_INFO_STRING
{
  TESTER_SYMBOL;
};

string TesterInfoString( const ENUM_TESTER_INFO_STRING property_id );
bool TesterSetString( const ENUM_TESTER_INFO_STRING property_id, const string property_value );

void OnTesterInit()
{
  TesterSetString(TESTER_SYMBOL, "EURUSD");
}

Все символы, выбранные в окне "Обзор рынка"

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

Оптимизация проходит только на тех символах, которые в текущий момент выбраны в окне "Обзор рынка". Таким образом, регулируя набор выбранных символов, можно управлять оптимизацией.

  • Следует учитывать, что закачка необходимых ценовых данных с сервера может занимать продолжительное время. Однако замедление процесса оптимизации в результате закачки данных происходит только при первом ее запуске на символе, в последующем докачиваются лишь недостающие данные.
  • При оптимизации по символам используются текущие значения входных параметров, указанные в колонке "Значение".


Сильно не хватает режима Оптимизации, когда идет последовательный перебор символов из Обзора рынка и в каждом идет Оптимизация входных параметров.

Такой режим очень востребован, когда ищешь подходящий символ для ТС. И особенно актуален на фоне существования кастомных символов - создаешь различные кастомные символы и смотришь в Оптимизаторе их свойства.

Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...

По MT4 вопрос.

Когда-то сталкивался с этим и вот снова на тесте HFT споткнулся с этим багом.

Выставляется BuyLimit, цена пробивает его вниз и далеко внизу остается на протяжении многих минут. При этом BuyLimit горит желтым, но "не исполняется".


Попытки его модификации выдают

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Когда увидел, то вспомнил эту давнюю ситуацию. Рецепт тогда и, как оказалось, сейчас всегда один - переконнект. После коннекта оказывается, что BuyLimit давно (с момента пересечения) является Buy-позицией.

При этом еще до реконнекта можно было торговать другими ордерами и все с ними было отлично, висел только BuyLimit.


Получается, что в MT4-терминал не приходит уведомление о том, что BuyLimit стал Buy-позицией. И, соответственно, облом, пока не сделаешь релогин.

Надо вспомнить, как эту ситуацию решал. Но на 99% уверен, что в случае ошибок или странностей просто делал принудительный Relogin через WinAPI.


Имеет ли смысл писать в СД об этом, все таки MT4? В пятерке, вроде, такого не замечал.

fxsaber:

По MT4 вопрос.

Когда-то сталкивался с этим и вот снова на тесте HFT споткнулся с этим багом.

Выставляется BuyLimit, цена пробивает его вниз и далеко внизу остается на протяжении многих минут. При этом BuyLimit горит желтым, но "не исполняется".


Попытки его модификации выдают

Когда увидел, то вспомнил эту давнюю ситуацию. Рецепт тогда и, как оказалось, сейчас всегда один - переконнект. После коннекта оказывается, что BuyLimit давно (с момента пересечения) является Buy-позицией.

При этом еще до реконнекта можно было торговать другими ордерами и все с ними было отлично, висел только BuyLimit.


Получается, что в MT4-терминал не приходит уведомление о том, что BuyLimit стал Buy-позицией. И, соответственно, облом, пока не сделаешь релогин.

Надо вспомнить, как эту ситуацию решал. Но на 99% уверен, что в случае ошибок или странностей просто делал принудительный Relogin через WinAPI.


Имеет ли смысл писать в СД об этом, все таки MT4? В пятерке, вроде, такого не замечал.

Наверное это кухонная утварь - мои ТС работают с лимитками в MT4, но такого ни разу не наблюдал.

fxsaber:

Сильно не хватает режима Оптимизации, когда идет последовательный перебор символов из Обзора рынка и в каждом идет Оптимизация входных параметров.

Такой режим очень востребован, когда ищешь подходящий символ для ТС. И особенно актуален на фоне существования кастомных символов - создаешь различные кастомные символы и смотришь в Оптимизаторе их свойства.

Здравая мысль - особенно важно сделать генетику, что б она работала отдельно по каждому символу!

Aleksey Vyazmikin:

Наверное это кухонная утварь - мои ТС работают с лимитками в MT4, но такого ни разу не наблюдал.

Это баг Терминала, не ДЦ. Можно открыть второй Терминал и видеть, что так называемый "BuyLimit" - Buy.