Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
//| 9.1.4.5 OrderDelete.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+1
void OnStart()
{
string Symb=Symbol(); //Финансовый инструмент
double Dist=1000000.0; //Предустановка
double Price;
int Limit_Stop=-1; // Пока отложенных нет
int Tip;
double Win_Price=WindowPriceOnDropped(); //Здесь брошен скрипт
//-------------------------------------------------------------------+2
for(int i=1; i<=OrdersTotal(); i++) // Цикл выбора ордеров
{
if(OrderSelect(i-1, SELECT_BY_POS)==true) //Eсли ордер выбран
{
//------------------------------------------------------------------+3
if(OrderSymbol()!=Symb) continue //не ваш фин. инструмент
int Tip=OrderType(); //Тип ордера
if(Tip<2) continue //Рыночный ордер
//------------------------------------------------------------+4
double Price=OrderOpenPrice(); //Цена откр. отлож. ордера
if(NormalizeDouble(MathAbs(Price-Win_Price),Digits)<
NormalizeDouble(Dist,Digits))
{
Dist=MathAbs(Price-Win_Price); // Новое значение
Limit_Stop=Tip; //Есть отложенный ордер
int Ticket=OrderTicket(); // номер ордера
}
}
//+---------------------------------------------------------------+5
switch(Limit_Stop)
{
case 2: string Texst="BuyLimint ";
break;
case 3: Texst="SellLimint ";
break;
case 4 Texst="BuyStop ";
break;
case 5 Texst="SellStop ";
break;
}
//------------------------------------------------------------------+6
//ЦИКЛ ЗАКРЫТИЯ ОРДЕРА
//--------------------------------------------------------------------
while(true) // цикл закрытия ордера
{
if(Limit_Stop==-1) //если отложенных нет
{
Alert("по ",Symb,"отложенных ордеров"); //если отложенных нет
break;
}
//-----------------------------------------------------------------+7
Alert("Попытка удалить ","",Ticket,"ожидание ответа..");
bool Ans=OrderDelete(Ticket); //Удаление ордера
//---------------------------------------------------------------------
if(Ans==true)
{
Alert("Удалён ордер ",Text,"",Ticket);
break;
}
int Error=GetLastError();
switch(Error)
{
case 4:Alert("Торговый сервер занят. Пробуем ещё раз..");
Sleep(3000); //Обновим данные
continue; //На следующую итерацию
case 137:Alert("Брокер занят. Пробуем ещё раз...");
Sleep(3000);
continue;
case 146:Alert("Подсистема торговли занята. Пробуем ещё раз...");
Sleep(500);
continue; // На следующую итерацию
}
switch(Error) //Критические ошибки
{
case 2:Alert("Oбщая ошибка.");
break; //Выход из switch
case 64:Alert("Счёт заблокирован.");
break; //Выход из switch
case 133:Alert("Торговля заблакирована.");
break;
case 139:Alert(" Ордер заблакирован и уже обрабатывается.");
break;
case 145:Alert("Модификация запрещена.Ордер слишком близок к рынку");
break;
default:Alert("Возникла ошибка.",Error); //Другие варианты //Выход из switch
}
break;
}
//---------------------------------------------------------------------+
Alert("Скрипт законччил работу-----------------------.");
return;
}
Ich habe zwei Fehler auf die onstart Klammern. es sieht aus wie es eine Klammer fehlt in der for-Schleife, ich habe 11 Fehler in der Schleife, Wunder!!!
Ich habe zwei Fehler auf die onstart Klammern. es scheint eine Klammer in der for-Schleife fehlen, ich habe 11 Fehler, Wunder!!!!
Seiten 25, 27, - Semikolon fehlt.
Seiten 44, 48, 50, 69, - Texst, der Compiler versteht nicht, was das ist, 'Text' ist kein deklarierter Bezeichner = er muss behandelt werden.
Seiten 48, 50, - Operand erwartet = höchstwahrscheinlich fehlt ein Doppelpunkt.
Seite 64 - Ticket = nicht deklarierter Bezeichner.
Und so weiter, sortieren Sie Ihre Fehler.
Ich füge den Code einfach so ein, wie er sein sollte, aber ich sehe ihn nicht.
müssen Sie etwas eingeben wie
***
Forenpanne
Warum lassen Sie die letzte Bestellung aus - ist das Ihre Absicht?
{
if(OrderSelect(i-1, SELECT_BY_POS)==true) //Eсли ордер выбран
{