Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1232

 
Können Sie mir sagen, wie ich mein eigenes Thema aus dem Forum entfernen kann?
 
Сергей Таболин:
Können Sie mir sagen, wie ich mein eigenes Thema aus dem Forum entfernen kann?

Nichts. Was ist das Thema?

 
Artyom Trishkin:

Nichts. Was ist das Thema?

https://www.mql5.com/ru/forum/348294

MQ5::Вопрос по свечному индикатору.
MQ5::Вопрос по свечному индикатору.
  • 2020.08.04
  • www.mql5.com
Привет всем! Пока меня окончательно и пожизненно не забанили, хочу успеть задать вопрос по индикатору...
 

Vielen Dank ))))

 

Hallo, ich versuche, die Funktion

//-------------------------------------------------------------------------------
//                      Функция модификации позиции,безуыток, трейлинг-стоп 
//-------------------------------------------------------------------------------+ 
                  
bool Modi_Traili(int select,int pool=MODE_TRADES,ulong magic=-1) 
{ 
//   double Profit_On =OrderProfit();                  // Профит открытой позиции             
   double Price_Open =0;                         // Цена открытой позиции
   string sym =Symbol(),er;
   int i,cnt=0, k=OrdersTotal(),op=-1,mn=-1;
   double Market_Pi=0, oop=0, point=0, pp=0;
   bool loop = false;
//----------------------------------
     if (sym=="") sym=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES)) {
      if ((OrderSymbol()==sym || sym=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY && (mn<0 || OrderMagicNumber()==mn)){             
          int  Ticket=OrderTicket(); 
            Price_Open = OrderOpenPrice();                                           
            Market_Pi=MarketInfo(OrderSymbol(), MODE_ASK);
            point=MarketInfo(OrderSymbol(), MODE_POINT);
            if (point==0) if (StringFind(sym, "JPY")<0) point=0.0001; else point=0.01;
            if (point==0) if (StringFind(sym, "XAU")<0) point=0.0001; else point=0.001;
             double Sorri=MathRound(MathAbs(Market_Pi-Price_Open)/point);   
              Print("Ticket==",Ticket,"Sorri = ",Sorri,"Price_Open = ",Price_Open,"mi = ",Market_Pi);
             if(Sorri >Deta && OrderProfit()>0)
            {
//            Print("Ticket==",Ticket,"Sorri = ",Sorri,"Price_Open = ",Price_Open,"mi = ",Market_Pi);
 //--------------------------------------------------------------------------------------------------
     while (!loop)                              // Цикл модификации  
     {     
     double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
     double SL=NormalizeDouble(Ask+(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
           Alert ("М-  -  -я ",Ticket,". Ждём ответ..");
          bool Ans=OrderModify(Ticket,Price_Open,SL,TP,0);    //Модифи его!
//--------------------------------------------------------------------------------
   if (Ans==true)                      // Получилось :)
              {
               Alert ("Ордер ",Ticket,TP," модифицирован:)");
               break;                           // Из цикла модифи.
              }
            //--------------------------------------------------- 7 --------------------
            int Error=GetLastError();           // Не получилось :(
            switch(Error)                       // Преодолимые ошибки
              {
               case 0  : loop = true; break; 
      
       case 4  : er=("Торговый сервер занят");
       case 135: er=("Цена изменилась");
       case 137: er=("Брокер занят");
       case 138: er=("Новые цены");
       case 146: er=("Подсистема торговли занята. Пробуем ещё..");
        Message(er);
         Sleep(2);                         // Простое решение
        RefreshRates();                     // Обновим данные
          continue;
       case 136: er=("Нет цен");
       Message(er);
          while(RefreshRates()==false)        // До нового тика
           Sleep(5);                        // Задержка в цикле
           cnt++; 
           continue;
       
        default:er=StringFormat("Ошибка: %d",Error);             // Другие варианты
        Message(er);
        loop = true;                  // Выход из while
        break;                             // Выход из switch
          }
//--------------------------------------------------------------------------------          
        } // Окончание while
       }
      }   // Окончание if
    
        if (OrderType()==OP_SELL &&(mn<0 || OrderMagicNumber()==mn))
        {
            int Ticket=OrderTicket(); 
            Price_Open = OrderOpenPrice(); 
            Market_Pi=MarketInfo(OrderSymbol(), MODE_BID);
            point=MarketInfo(OrderSymbol(), MODE_POINT);
            if (point==0) if (StringFind(sym, "JPY")<0) point=0.0001; else point=0.01;
            if (point==0) if (StringFind(sym, "XAU")<0) point=0.0001; else point=0.001;
              double Sorri=MathRound(MathAbs(Price_Open-Market_Pi)/point);    //+MarketInfo(OrderSymbol(), MODE_SPREAD);
             if(Sorri >Deta && OrderProfit()>0)
            {
            Print("So = ",Sorri,"Price_Open = ",Price_Open,"Mi = ",Market_Pi);
            Comment(Ticket);
            while (!loop)                              // Цикл модификации  
     {     
     double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
     double SL=NormalizeDouble(Bid-(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
           Alert ("Мод------я ",Ticket,". Ждём ответ..");
           bool Ans=OrderModify(Ticket,Price_Open,SL,TP,0);    //Модифи его!
//--------------------------------------------------------------------------------
   if (Ans==true)                      // Получилось :)
              {
               Alert ("Ордер ",Ticket,TP," модифицирован:)");
               break;                           // Из цикла модифи.
              }
            //--------------------------------------------------- 7 --------------------
             int Error=GetLastError();           // Не получилось :(
            switch(Error)                       // Преодолимые ошибки
              {
               case 0  : loop = true; break; 
      
       case 4  : er=("Торговый сервер занят");
       case 135: er=("Цена изменилась");
       case 137: er=("Брокер занят");
       case 138: er=("Новые цены");
       case 146: er=("Подсистема торговли занята. Пробуем ещё..");
        Message(er);
         Sleep(2);                         // Простое решение
        RefreshRates();                     // Обновим данные
          continue;
       case 136: er=("Нет цен");
       Message(er);
          while(RefreshRates()==false)        // До нового тика
           Sleep(5);                        // Задержка в цикле
           cnt++; 
           continue;
       
        default:er=StringFormat("Ошибка: %d",Error);             // Другие варианты
        Message(er);
        loop = true;                  // Выход из while
        break;                             // Выход из switc}
        }
                      
            }
          }//
       }
      }
      }
     } //--------------------------Выход из цикла for
  
  return(true);
}

Stopp auf Breakeven verschieben, wenn der aktuelle Kurs den Eröffnungskurs um

Deta 

Pips. Ich erhalte eine Fehlermeldung 4051. Der gesamte Tankaufbau ist in der Datei enthalten (falls Sie ihn benötigen). Der WMA-Indikator wird verwendet. Nicht meine, hoffentlich nicht kaputt.

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Dateien:
v5mz03.mq4  52 kb
WMA.mq4  10 kb
 
Galim_V:

Hallo, ich versuche, die Funktion

Stopp auf Breakeven verschieben, wenn der aktuelle Kurs den Eröffnungskurs um

Pips. Ich erhalte eine Fehlermeldung 4051. Der gesamte Tankaufbau ist in der Datei enthalten (falls Sie ihn benötigen). Der WMA-Indikator wird verwendet. Nicht meine, hoffentlich nicht kaputt.

Ungültiger Funktionsparameter. Vermutlich haben Sie keine Kontrolle für Mindeststoppaufträge. Fügen Sie es hinzu, es ist eine obligatorische Prüfung für den Marktplatz.

......

double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
double SL=NormalizeDouble(Bid-(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
TP=New_Stop(TP);
SL=New_Stop(SL);
......
double New_Stop(double Parametr) // Проверка стоп-прик.
  {
   double Min_Dist=MarketInfo(Symbol(),MODE_STOPLEVEL);// Миним. дистанция
   if(Parametr<Min_Dist) // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа или цены открытия отложенных ордеров.");
     }
   return(Parametr);                            // Возврат значения
  }
 
Valeriy Yastremskiy:

Ungültiger Funktionsparameter. Auf den ersten Blick haben Sie keine Kontrolle für Mindeststoppaufträge. Fügen Sie es hinzu, es ist eine obligatorische Prüfung für den Marktplatz.

Ich danke Ihnen! Ich werde es mir ansehen.

 

wie man in einem Indikator, der in M1 arbeitet, Daten aus D1 erhält, wenn der Indikator auf Formeln basiert und es keinen Aufruf von Standardindikatoren wie =iMA(Symbol(),Period(),.... gibt

Wie berechne ich?

 
Einen guten Tag an alle. Ich habe diese Situation auf meinem Demokonto (nicht auf dem echten Konto) erlebt.) Mehrere Positionen wurden vom Expert Advisor geschlossen, als er ein bestimmtes Niveau des kumulierten Gewinns erreichte, angeblich positiv, während alle Positionen in einem guten Verlust saßen, das Ereignis trat bei 2-50 auf dem Server (sieht nicht wie eine Übertragung von Positionen). Der (von mir erstellte) Expert Advisor berechnet den Gesamtgewinn aller offenen Positionen und vergleicht ihn mit einem vordefinierten Wert, d.h. das Bild der Balken im Fenster ist so, als ob es keine Rolle spielt, obwohl es eine leichte Bewegung in die Richtung zeigt, die den Gewinn bringt. Der Expert Advisor arbeitet mit einem Timer, der auf 100 ms eingestellt wurde. Ich schließe nicht aus, den Broker Idee als die gleichen Expert Advisor eines anderen Maklers mit den gleichen Einstellungen, sondern die Arbeit mit Ticks des Preises hat leicht verloren Gewinn. Ich hatte eine Reserve auf meinem Konto, der Expert Advisor meldete die Schließung aus dem Gewinnrealisierungsblock.Vielleicht hat jemand eine Idee, was falsch gelaufen sein könnte.
 
Evgeny Vlasov:
Guten Tag zusammen. Ich hatte eine solche Situation auf einem Demokonto (nicht auf dem echten Konto). Mehrere Positionen wurden vom Expert Advisor geschlossen, als er einen bestimmten Betrag an kumuliertem Gewinn erreichte, der angeblich positiv war, während alle Positionen in einem guten Verlust saßen, das Ereignis trat bei 2-50 auf dem Server auf (sieht nicht wie eine Übertragung von Positionen aus). Der Expert Advisor (von mir erstellt) berechnet den Gesamtgewinn aller offenen Positionen und vergleicht ihn mit einem vordefinierten Wert, d.h. das Bild der Balken im Fenster ist so, als ob es keine Rolle spielen würde, obwohl es eine leichte Bewegung in die Richtung zeigt, die den Gewinn bringt. Der Expert Advisor arbeitet mit einem Timer, der auf 100 ms eingestellt wurde. Ich schließe nicht aus, den Broker Idee als die gleichen Expert Advisor eines anderen Maklers mit den gleichen Einstellungen, sondern die Arbeit mit Ticks des Preises hat leicht verloren Gewinn. Ich hatte eine Reserve auf meinem Konto, der Expert Advisor meldete die Schließung aus dem Gewinnrealisierungsblock.Vielleicht hat jemand eine Idee, was falsch gelaufen sein könnte.

Das ist für dich in der Telepathenbranche)))) Es war hier irgendwo.)

Und zu diesem Thema... ICH WEISS ES NICHT. Kein Code, kein Markt, kein Nichts... Eindeutig Telepathen))))

Grund der Beschwerde: