Буду всем признателен,если подскажете,как сделать так,что бы в течении 1 секунды открывался только 1 ордер на любом тике.
int start()
{
...
int ot=OrdersTotal();
bool open_allowed = true;
if(ot>0)
{
if(OrderSelect(ot-1,SELECT_BY_POS))
{
if(TimeCurrent()-OrderOpenTime()<=1) open_allowed=false; //если разница между текущим временем сервера и временем открытия последнего ордера 1 секунда или меньше, запретить торговлю
}
}
if(open_allowed)
{
//открываемся
}
...
}
Щас.. Примерно .Обьявите некую переменную перед стартом, запомните время. После простановки ордера она равна, скажем, правде. Перед постановкой тоже проверка на нее. Я не силен во временных переменных. Перед ордерсендом проверка, если к этой переменной прибавить заданное время, будет ли оно больше настоящего. Если не больше, тогда ордерсенд, и вновь запоминаем новое время! Да, как-то так. Как бы даже просто!!!
Помогите найти советника или скрипт, наверняка есть готовый...
Требуется, чтобы советник в определенное время открывал по рынку сделку с определенным лосем и профитом. Больше от него ничего не требуется...
Заранее благодарю.
Любой советник это делает в МетаЭдиторе и соответствующие скрипты в нём же!
if(Hour() >= xx) открыть;Всем доброго времени суток!
Я новичок. Первый разы пытаюсь воплотить идею в код в тестере.
Идея простая - по цене открытия каждой часовой свечки открывать по одному ордеру попеременно вверх и вниз.
Написал простой код .... но проблема в том,что на открытии одной свечи программа почему то иногда открывает более 1 ордера.
Как мне кажется это происходит когда в течении 1 секунды приходят более 1 тика.
Как вариант пробовал в заголовок условия if( ) ставить..
действительно открывается только один ордер.
Но такой вариант мне не подходит так как на следующий день данная свеча не открывается,поскольку на момент открытия этой свечи
в торговле уже присутствуют разное случайное количество ордеров.
Пробывал так же после строки OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP); прерывать исполнение start() при помощи return; .... не помогло.
Буду всем признателен,если подскажете,как сделать так,что бы в течении 1 секунды открывался только 1 ордер на любом тике.
int start()
{
double Price=Ask;
double SL=Price-300*Point;
double TP=Price+300*Point;
if( Hour()==10 && Minute()== 00 && Seconds()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);
}
Ну, не знаю как, но надо, что бы даные сохранялись.
Всем доброго времени суток!
Я новичок. Первый разы пытаюсь воплотить идею в код в тестере.
Идея простая - по цене открытия каждой часовой свечки открывать по одному ордеру попеременно вверх и вниз.
Написал простой код .... но проблема в том,что на открытии одной свечи программа почему то иногда открывает более 1 ордера.
Как мне кажется это происходит когда в течении 1 секунды приходят более 1 тика.
Как вариант пробовал в заголовок условия if( ) ставить..
действительно открывается только один ордер.
Но такой вариант мне не подходит так как на следующий день данная свеча не открывается,поскольку на момент открытия этой свечи
в торговле уже присутствуют разное случайное количество ордеров.
Пробывал так же после строки OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP); прерывать исполнение start() при помощи return; .... не помогло.
Буду всем признателен,если подскажете,как сделать так,что бы в течении 1 секунды открывался только 1 ордер на любом тике.
int start()
{
double Price=Ask;
double SL=Price-300*Point;
double TP=Price+300*Point;
if( Hour()==10 && Minute()== 00 && Seconds()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP);
}
solnce600:
Буду всем признателен,если подскажете,как сделать так,что бы в течении 1 секунды открывался только 1 ордер на любом тике.