В скриптах поставки есть пример - deletePending.
Вот типа для удаления всех по выбранному символу
#property show_confirm
//+------------------------------------------------------------------+
//| script "delete first pending order" |
//+------------------------------------------------------------------+
int start()
{
bool result; string s;
int cmd,total;
//----
total=OrdersTotal()-1;Print ("Total=",total+1);
//----
for(int i=total; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
cmd=OrderType();s=OrderSymbol();
//Print (" = ",i," ",cmd," ",s);
//---- pending orders only are considered
if(cmd!=OP_BUY && cmd!=OP_SELL && s==Symbol())
{
//---- print selected order
OrderPrint();
//---- delete pending order
result=OrderDelete(OrderTicket());
if(result!=TRUE) Print("LastError = ", GetLastError());
//break;
}
}
else { Print( "Error when order select ", GetLastError()); break; }
}
//----
return(0);
}
Спасибо за линк. Но неужеле нельзя попроще? Краткость сестра таланта.
Спасибо за линк, но там черт ногу сломает, столько наворотили, вы это видели? Неужеле нельзя попроще? Краткость сестра таланта.
следите в сове за основным ордером - и все дела...
;)
Спасибо за линк, но там черт ногу сломает, столько наворотили, вы это видели? Неужеле нельзя попроще? Краткость сестра таланта.
https://www.mql5.com/ru/forum/138628/page2 см. в конце советник от
khorosh 23.03.2012 12:33
"Ошибки компиляции устранил, отсутствие других, если такие имеются, не гарантирую.."
Может ли кто-нибудь помочь со скриптом (как можно проще (без наворотов), чтобы было понятно, потому что я только учусь).
Условие простое.
Есть только один открытый ордер и один отложенник (мартингейл). Если первый закрывается по профиту, то отложенник сразу удаляется. Наверное для гуру это проще простого. А я уже все мозги сломала.
Я пока только научилась открывать ордера, а с закрытием - туго. Все что я нахожу на интернете - очень наворочено для начинающего или теория, которую непонятно как применять. А простых примеров очень мало. Я нашла только здесь (может кому из начинающих тоже пригодится)
Помогите пожалуйста.
if(isCloseLastPosByTake(0, -1, -1)) { DeleteOrders("0", -1, -1); }Сами функции можете найти в ветке "Полезные функции KimIV".
Мне почему-то кажется, что это можно это решить двумя линиями, только я не знаю как.
Типа:
1. Есть только один открытый ордер, который мы отыскиваем (OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS,MODE_HISTORY))
2. Если этот ордер в профите if(OrderProfit()>0), то закрыть pending order OrderDelete()
Только как это все написать правильно? Вы поймите, я же еще на уровне "Hello World" только.
Есть другое мнение -- "простота хуже воровства".
Ну зачем же так? Все когда-то начинали с простых скриптов.
Ну зачем же так? Все когда-то начинали с простых скриптов.
О них и сказано.
Мне почему-то кажется, что это можно это решить двумя линиями, только я не знаю как.
Типа:
1. Есть только один открытый ордер, который мы отыскиваем (OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS,MODE_HISTORY))
2. Если этот ордер в профите if(OrderProfit()>0), то закрыть pending order OrderDelete()
Только как это все написать правильно? Вы поймите, я же еще на уровне "Hello World" только.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Может ли кто-нибудь помочь со скриптом (как можно проще (без наворотов), чтобы было понятно, потому что я только учусь).
Условие простое.
Есть только один открытый ордер и один отложенник (мартингейл). Если первый закрывается по профиту, то отложенник сразу удаляется. Наверное для гуру это проще простого. А я уже все мозги сломала.
Я пока только научилась открывать ордера, а с закрытием - туго. Все что я нахожу на интернете - очень наворочено для начинающего или теория, которую непонятно как применять. А простых примеров очень мало. Я нашла только здесь (может кому из начинающих тоже пригодится)
Помогите пожалуйста.