Помогите реализовать одну идею!

 

В общем чего бы хотелось получить:

Есть некий советник с определенными сигналами на открытие позиций. Так вот нужно чтобы ордера открывались через x-время после получения сигнала.

Например значение x=300 секунд.

Поступил сигнал Buy - советник не открывает позицию сразу, а через 300 секунд.


Может кто сталкивался с этим?!

 
Set777:

В общем чего бы хотелось получить:

Есть некий советник с определенными сигналами на открытие позиций. Так вот нужно чтобы ордера открывались через x-время после получения сигнала.

Например значение x=300 секунд.

Поступил сигнал Buy - советник не открывает позицию сразу, а через 300 секунд.


Может кто сталкивался с этим?!

Перед каждой функцией OrderSend() добавьте по парочке строк:


Sleep(300000);

RefreshRates();


И будет Вам счастье!

 
Set777:

В общем чего бы хотелось получить:

Есть некий советник с определенными сигналами на открытие позиций. Так вот нужно чтобы ордера открывались через x-время после получения сигнала.

Например значение x=300 секунд.

Поступил сигнал Buy - советник не открывает позицию сразу, а через 300 секунд.


Может кто сталкивался с этим?!

Можно такое сделать. Sleep() это не лучшее решение

 
А можно вообще этого не делать и счастливее будете.
 

Перед каждой функцией OrderSend() добавьте по парочке строк:


Sleep(300000);

RefreshRates();


И будет Вам счастье!


Что то не совсем понятно... Пробовал не работает, и где параметр х? Неужели Sleep(300000); - это задержка на 300 секунд.

Если не сложно, объясните.

 
Set777:

Перед каждой функцией OrderSend() добавьте по парочке строк:


Sleep(300000);

RefreshRates();


И будет Вам счастье!


Что то не совсем понятно... Пробовал не работает, и где параметр х? Неужели Sleep(300000); - это задержка на 300 секунд.

Если не сложно, объясните.


Щас, все дела брошу и начну одно и тоже объяснять. Запускай MetaEditor и читай внимательно справку.


Sleep() в разделе "Общие функции"

RefreshRates() в разделе "Операции с графиками"

 
Reshetov:
Set777:

Перед каждой функцией OrderSend() добавьте по парочке строк:


Sleep(300000);

RefreshRates();


И будет Вам счастье!

Что то не совсем понятно... Пробовал не работает, и где параметр х? Неужели Sleep(300000); - это задержка на 300 секунд.

Если не сложно, объясните.


Щас, все дела брошу и начну одно и тоже объяснять. Запускай MetaEditor и читай внимательно справку.


Sleep() в разделе "Общие функции"

RefreshRates() в разделе "Операции с графиками"

Странная реакция...

По моему я ни кого не заставлял что-либо объяснять мне. Я просто попросил помощи с конкретным примером. Уважаемый Юрий Решетов, если у вас нет времени, я думаю, и не стоит даже заглядывать в подобные ветки, а заниматься вашими делами. А уж если начали помоготь, так помогите до конца, а фразы "Щас, все дела брошу и начну одно и тоже объяснять" не к месту - вас ни кто ни к чему не обязывает!

 

Делай так, Sleep - забудь, введи переменную, которая будет определять состояние твоего советника, по умолчанию - 0. В тот момент, когда у тебя должна открыться поза, устанавливай новое состояние - 1 для buy, 2 - для sell. При входе (в начале Start) заведи счетчик времени (таймер), который с каждым тиком будет уменьшаться на определенное, рассчитываемое значение, зависящее от прошедшего между тиками время. И как только таймер обнулится от твоего начального X, анализируй состоение советника и если оно не нулевое, то покупай, продавай, сбрасывай счетчик и состояние. Сам не сможешь - код нужен...