ordersend() помощь в кодировании...

 

Привет, ребята,

Очень странно, но когда я запускаю следующий код, он ничего не делает. GetLastError() возвращает 130.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


Но если взять тот же код и удалить информацию о стопе и цели, то он выдает ордера просто отлично.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


Я использую пустой шаблон эксперта и только эти две строки кода в функции запуска.

Не уверен, в чем причина...


Спасибо!

 
mugged:

Привет, ребята,

Очень странно, но когда я запускаю следующий код, он ничего не делает. GetLastError() возвращает 130.


Но если взять тот же код и удалить информацию о стопе и цели, то он выдает ордера просто отлично.


Я использую пустой шаблон эксперта и только эти две строки кода в функции запуска.

Не уверен, в чем причина...


Спасибо!

Что за брокер?

символ дробной точки?

 
diostar:

Что за брокер?

символ дробной точки?


Я использую счет IBFX mini.


Я использую его на Eur/Usd

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

Вы неправильно рассчитали SL и TP

Если это покупка:

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* пункт

Если это продажа:

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point;

Кроме того, у некоторых брокеров вы должны сделать OrderSend() без уровней SL и TP, затем сделать OrderModify() и ввести TP и SL.

 
mugged:

Я использую счет IBFX mini.


Я использую его на Eur/Usd

Ok.... Извините за неточность.

попробуйте это:

(1)в ордерах end: sl=tp=0. затем ordermodify sl=tp.

(2) eur/usd: какие цифры? 4 или 5?

 
SDC:

Вы неправильно рассчитали SL и TP

Если это покупка:

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* пункт

Если это продажа:

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point;


Эй, приятель, я попробовал поменять "Ask", который я использовал для определения SL и TP, на "Bid", как ты предложил, но все равно не получилось.
 

OK, возможно, это просто потому, что вам нужно выполнить OrderSend(), а затем OrderModify().

 
diostar:

Ok.... Извините за неточность.

попробуйте следующее:

(1) в ordend: sl=tp=0. затем ordermodify sl=tp.

(2) eur/usd: какие цифры? 4 или 5?



1) Да, этот метод работает! Но есть ли какой-нибудь способ обойти это? Мне не нравится мысль о худшем случае, когда первоначальный ордер поступает, но модификация не происходит (соединение разрывается, происходит ошибка и т.д. и т.п.).


2) 5-ти значный брокер

 
для пятизначного брокера вам, возможно, придется умножить суммы SL и TP на десять, иначе вы поставите TP или стоп-аут на уровне 2,5 пунктов.
 
SDC:
для пятизначного брокера вам, возможно, придется умножить суммы SL и TP на десять, иначе вы поставите TP или стоп-аут на 2,5 пункта.

Кажется, все проходит нормально с методом "отправить, затем изменить". Есть идеи, как я могу получить и ордер, и стоп в одном кадре? Я бы предпочел, чтобы в производственной среде они входили вместе.