Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 68

 
Ho messo il codice nel modo giusto e non lo vedo.
 

//|                                          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;
}

  
ragazzi date un'occhiata
 
Sono usciti due errori sulle parentesi onstart. sembra che manchi una parentesi nel ciclo for, ho messo 11 errori, miracolo!!!!
 
 
FOTOGRAF14:
Ho due errori sulle parentesi onstart. sembra che manchi una parentesi nel ciclo for, ho messo 11 errori nel ciclo, miracolo!!!
Non pensate che aumentare il numero di errori sia sbagliato! La staffa in per è davvero necessario. È solo questo errore che deve essere risolto prima di tutto. Dopo averlo aggiustato, apparentemente ci sono più errori :)
 
FOTOGRAF14:
Ho due errori sulle parentesi onstart. sembra che manchi una parentesi nel ciclo for, ho messo 11 errori, miracolo!!!!
I miracoli non accadono..."')' - fine inaspettata del programma'' - fine inaspettata... "'{' - parentesi sbilanciate" - parentesi scoperte... = parentesi incomplete, '{' manca o non è necessario ... bisogno di controllare attentamente il codice e aggiungere dove necessario, non solo o rimuovere un extra. ...
 
FOTOGRAF14:

Pagine 25, 27, - manca il punto e virgola.

Pagine 44, 48, 50, 69, - Texst, il compilatore non capisce cos'è, 'Text' non è un identificatore dichiarato = deve essere trattato.

Pagine 48, 50, - operando previsto = molto probabilmente mancano i due punti.

Pagina 64 - Ticket = identificatore non dichiarato.

E così via, sistemate i vostri errori.

 
FOTOGRAF14:
Sto incollando il codice come dovrebbe essere ma non lo vedo.

devi digitare qualcosa come

***

guasto del forum

 
FOTOGRAF14:

  
ragazzi date un'occhiata

Perché stai saltando l'ultimo ordine - è questa l'intenzione?

for(int i=1; i<=OrdersTotal(); i++)         // Цикл выбора ордеров
  {  
    if(OrderSelect(i-1, SELECT_BY_POS)==true)    //Eсли ордер выбран
      {


 
nel terminale - scheda notizie. come faccio a cambiare la dimensione della finestra pop-up e la dimensione del carattere al suo interno in modo che queste modifiche vengano mantenute quando esco dal terminale e poi accedo?
Motivazione: