Закрыть нужный нам ордер - страница 2

 

В рамках поставленной задачи скрипт.

Даже шире.

Работает на любом количестве позиций.

А время, уж, сам прикрути.

if(Hour()>=23 && Minute()>=00)

Подсказка - минут меньше нуля не бывает.

Файлы:
 
XmaksasX:
про какую функцию Вы говорите? меня просто интересует как закрыть первым тот ордер у которого профит больше вот и все))


Про вашу ф-ию закрытия этих ордеров.

Алгоритм:

Идете циклом по вашим рыночным ордерам от последнего к первому.

Узнаете сколько рыночных ордеров. Если два, то сравниваете их профит.

Закрываете первым тот ордер у которого профит больше.

См. эти ф-ии - не исключено, что найдете подходящие к вашей задачке и используете их.

 
Speeqoolyant:

В рамках поставленной задачи скрипт.

Даже шире.

Работает на любом количестве позиций.

А время, уж, сам прикрути.

Подсказка - минут меньше нуля не бывает.



Ответ не верный, т.к. в этом случае вы ВСЕГДА первым закроете самый свежий (крайний) рыночный ордер, а надо первым закрыть из выбранных двух рыночных тот, у которого профит БОЛЬШЕ.
 
Roman.:


Про вашу ф-ию закрытия этих ордеров.

Алгоритм:

Идете циклом по вашим рыночным ордерам от последнего к первому.

Узнаете сколько рыночных ордеров. Если два, то сравниваете их профит.

Закрываете первым тот ордер у которого профит больше.

а нельзя в данном случае воспользоваться оператором switch??? так как больше двух ордеров все равно не будет

например:

int Ktic;
Ktic=OrdersTotal();

switch(Ktic)

 case 1:
   {ololo}
   break;

 case 2:
   {ololo}
   break;
 
Roman.:

Ответ не верный, т.к. в этом случае вы ВСЕГДА первым закроете самый свежий (крайний) рыночный ордер, а надо первым закрыть из выбранных двух рыночных тот, у которого профит БОЛЬШЕ.

Злобная клевета! ))

Попробуйте разобраться.

 
Speeqoolyant:

Злобная клевета! ))

Попробуйте разобраться.

Закроются все ордера по инструменту, на графике которого повешен скрипт, в порядке убывания профитов. С возможной кучей ошибок исполнения - если есть профитные ордера по другим инструментам ;). Еще РефрешРаэйтес надо ставить перед КлозеОрдер - закрытием (можно перед первым ифом), а не в конце цикла.

В принципе, точным ответом на поставленный вопрос не является, но при наличии 2-х ордеров выполнит требуемые действия.

Кстати, для Вашего алгоритма в зависимости от количества ордеров может быть быстрее первым проходом все писать в массивы, а потом сортировать индексы массива по профиту - получить массив перестановок ;).

 
VladislavVG:

Закроются все ордера по инструменту, на графике которого повешен скрипт, в порядке убывания профитов. С возможной кучей ошибок исполнения - если есть профитные ордера по другим инструментам ;). Еще РефрешРаэйтес надо ставить перед КлозеОрдер - закрытием (можно перед первым ифом), а не в конце цикла.

В принципе, точным ответом на поставленный вопрос не является, но при наличии 2-х ордеров выполнит требуемые действия.

Кстати, для Вашего алгоритма в зависимости от количества ордеров может быть быстрее первым проходом все писать в массивы, а потом сортировать индексы массива по профиту - получить массив перестановок ;).

А где говорилось про несколько инструментов?

А если прочитать пост, то "В рамках поставленной задачи скрипт."

РефрешРаэйтес выполняется внутри, с краю while(), для обновления списка позиций, а не цен, поэтому так цикл будет работать корректно.

Выполняет требуемые действия на любом количестве позиций

На фоне скорости исполнения приказов, манипуляции внутри терминала - молниеносны.

 
XmaksasX:

а нельзя в данном случае воспользоваться оператором switch??? так как больше двух ордеров все равно не будет

например:


Действуйте, как Вам угодно, предоставленной инфы - достаточно для решения вашего вопроса тем или иным вариантом.
 
Всем большое спасибо, за помощь и советы.
 
Speeqoolyant:

А где говорилось про несколько инструментов?

А Вы под каждый конкретный случай пишете программку ? Тоже вариант )))))).

Speeqoolyant:

РефрешРаэйтес выполняется внутри, с краю while(), поэтому без разницы.

Не совсем: за время перебора ордеров (исполнения цикла фор() ) цена может уйти. На реале посмотрите ;).

Speeqoolyant:

На фоне скорости исполнения приказов, манипуляции внутри терминала - молниеносны.

)))))))).... Все зависит от размера исполняемого кода и его эффективности. Не забывайте, что пока терминал считает - он пропускает тики, впрочем, для тестера и демо - это не имеет особого значения ;)....

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