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

 

Доброго

Я что то пропустил или теперь можно байлимитные ордера отправлять выше текущей цены и так что они сразу исполняются. Как на настоящей биржевой системе?

Типа ограничения проскальзывания?

 

Не могу сообразить, прошу подсказать. Есть такое получение времени

int GetHandle() { return(0); }

bool SelectHandle( int ) { return(true); }
  
int NewHandle = 0;  
int PrevHandle = GetHandle();    

datetime time = SelectHandle(NewHandle) ? TimeCurrent() : 0;  
SelectHandle(PrevHandle);


Как написать макрос, делающий то же самое

time = MACROS(NewHandle, TimeCurrent()); // Макрос


Проблема в том, что PrevHandle в макросе не создать.

 

Всем привет.

Терминал build 1960 (в бете 1966 тоже самое). Функции CopyTicks, CopyTicksRange безошибочно отрабатывают в индикаторе, запущенном в самом терминале, но в тестере, тот же самый индикатор, в этих функциях выдаёт результат -1 и ошибку 4014. Разработчики, подскажите, почему так?

 
fxsaber:

Как написать макрос, делающий то же самое

А чем функция не устраивает?
 
Alexey Navoykov:
А чем функция не устраивает?

Тем, что вместо TimeCurrent может быть совсем любая функция.

 
fxsaber:

Тем, что вместо TimeCurrent может быть совсем любая функция.

Ну тогда если только глобальную переменную использовать.
 
fxsaber:

Как написать макрос, делающий то же самое

Проблема в том, что PrevHandle в макросе не создать.

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

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

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

Можно так:

int MACROS_helper_int;
#define MACROS(NEW_HANDLE_, FN_)  (MACROS_helper_int=GetHandle())*0+(SelectHandle(NEW_HANDLE_) ? FN_ : 0);  \
                                  SelectHandle(MACROS_helper_int);

Но костыльно, куда-нибудь в условие не засунуть, только через =.

ЗЫ: и аккуратно использовать в после if, while и т.д.

if(true)
   MACROS(...);

Я бы наверное таким и не стал пользоваться.

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

Ну давайте и Вы, мастер, удивите плебеев гениальной реализацией.

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