[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 142

 
E_mc2 >> :

Wenn Sie sich Sorgen machen, dass Sie verschlafen könnten, ändern Sie diese Zeile

\ if ( WarningMode>0 ) PlaySound(soundfile); \

Indikator für diesen

\ if ("WarningMode>0 && shift==0) GlobalVariableSet("Alarm",1); \

und erstellen Sie einen Indikator wie diesen

int start()
{if(GlobalVariableGet("Будильник"))PlaySound("news.wav");
return(0);
}

Und wenn Sie einschlafen, stellen Sie nicht nur die Hauptanzeige, sondern auch den Wecker.

Der Wecker kann manuell ausgeschaltet werden, indem der Wert 0 in der Variable Wecker über die Taste F3 geändert wird.

 
Urain >> :

Wozu brauchen Sie es? Erzählen Sie mir mehr darüber, vielleicht gibt es eine Lösung, und Sie wissen nicht, wie Sie die richtigen Fragen stellen können, damit die Leute es verstehen.

Ich habe zwei Lösungen für das, was du geschrieben hast, es würde zu lange dauern, zwei auf einmal zu schreiben :)

..

Übrigens ist es besser, solche langen Codes als Datei anzuhängen.

Und für den Code gibt es eine spezielle Schaltfläche SRC

Ja, ich brauche es, damit ich das Signal nicht verpasse.) Nur wenn der Alarm einmal losgeht, kann man ihn leicht verpassen, vor allem nachts((( Und was bedeutet das - Alarm??? Was wird geschehen?

Ich habe die Linie geändert... Ich habe einen neuen Indikator Alarm..... erstellt, aber ich verstehe es nicht... er funktioniert immer, unabhängig davon, ob der Indikator ein Signal ausgibt oder nicht... Selbst wenn es kein Signal vom Indikator gibt, piept der Wecker kontinuierlich)))) Es gibt kein Signal, aber der Wecker funktioniert...

 
E_mc2 >> :

Ich brauche es, damit ich das Signal nicht verpasse)) Der Alarm ertönt nur einmal, was besonders nachts leicht zu übersehen ist((( Und was bedeutet das - Alarm??? Was wird geschehen?

Ändern Sie die Zeile in Ihrem Indikator wie oben beschrieben.

Kompilieren Sie den beigefügten Indikator und führen Sie ihn aus.

Es wird bei jedem Tick klingeln, bis Sie den Indikator deaktivieren oder die globale Variable "Alarm" zurücksetzen

Dateien:
wxinptvxq.mq4  1 kb
 

Moving Average Expert Advisor.

Ich habe Funktionen KimIV eingefügt, um eine Order zu öffnen (GetSizeLot() OpenPosition CorrectTF(int TimeFrame=0) GetNameOP(int op) ModifyOrder() ExistPositions() Message()). Er war noch nicht zum Abschluss gekommen. Ich habe eine eigene Indikatordatenfunktion void Indicat_Var() erstellt, um Indikatordaten an einem Ort zu haben und sie an jeder Stelle des Programms zu verwenden.

Wenn Sie mit der Funktion CheckForOpen() auf Indicat_Var() zugreifen, ist alles in Ordnung, aber wenn Sie mit der Funktion CheckForClose() auf Indicat_Var() zugreifen, werden die Aufträge nicht geschlossen - ich verstehe nicht, warum

Ich denke auch, dass die Funktionen CalculateCurrentOrders(string symbol) und ExistPositions() sich gegenseitig duplizieren.

Bitte helfen Sie mir zu verstehen

Dateien:
magkimiv.mq4  15 kb
 

Die Funktion der Losberechnung wurde ursprünglich im EA bereitgestellt. Wenn Sie eine weitere hinzugefügt haben (GetSizeLot()), dann entfernen Sie (zumindest) die ursprüngliche - LotsOptimized()

//------------------------------------------------

In der Tat. Die Funktionen, die das Vorhandensein offener Stellen ermitteln, duplizieren sich gegenseitig.

Einer von ihnen kann entfernt werden. (Erfahren Sie, wie sie sich unterscheiden und welche Sie mehr brauchen!)

//--------------------------------------------

Siehe https://www.mql5.com/ru/articles/1385

Dort, genau dort, ist eine Modifikation dieses EA mit russischen Kommentaren im Code.

Änderung, - Genau, durch Schließen.

 

Markieren wir die OPEN und CLOSE POINTS auf dem Chart?

Frage an die Profis: Gibt es einen solchen Indikator oder ein solches Skript?

die die Eröffnungs- und Schlusspunkte auf dem Diagramm zeichnet?

einer Bestellung? Er verbindet sie mit einer Linie,

Der rote ist ein Verlust. Nützlich für die Analyse von Fehlern in der Geschichte!

 

Ich glaube, diese Frage wurde Ihnen bereits gestellt.

Sie können einen Handel direkt aus der Kontohistorie mit der Maus auf den entsprechenden Chart ziehen.

Und Sie werden bekommen, wonach Sie suchen.

Ich habe das Drehbuch irgendwo gesehen. Ich glaube, I.Kim hatte ein solches Drehbuch.

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32

 

Bitte um Hilfe von Kennern des Cursor mit einem Preis,

Ich danke Ihnen!

 

Bitte helfen Sie mir zu verstehen, warum meine offenen Aufträge nicht geschlossen werden, wenn sich der Trend ändert (offene Bedingungen). Und wie kann ich diesen Fehler beheben?

Für mich sieht der Code folgendermaßen aus:

extern int TP=40;            //уровень Take Profit
extern int SL=0;              //уровень Stop Loss
extern double Lots1=0.2;      //лот основной сделки
extern double Lots2=0.1;      //лот вспомогательных сделок 
extern int slippage=2;        //проскальзование
int MagicNumber1=5345; //магическое число сделки BUY
int MagicNumber2=1612; //магическое число сделки SELL
// переменная для пятизнаков
int BrokerDecimal = 1;
// и просто нужные переменные (типа флажки)
double ticketbuy;
double ticketsell;



int init()
  {
  // Если брокер дает котировки по валюте с точностью в пять или три знака - пипс будет меньше стандартного в 10 раз - вводим множитель   
  if(Digits==3 || Digits==5) BrokerDecimal=10; 
  // Перемножить все уровни в пипсах на множитель
  SL           = SL * BrokerDecimal; 
  TP           = TP * BrokerDecimal;
  return(0);
  }

int start()
  {
  // Рассчеты и анализ индикаторов
  double jaw=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORJAW,1); //синяя линия (челюсть)
  double teen=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORTEETH,1);//красная линия (зубы)
  double lips=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORLIPS,1);//зеленая линия (губы)
  
  double lastClose=iClose(NULL,0,1);
  
  
  // Собственно тело программы  
  if((OrderSelect( ticketbuy, SELECT_BY_TICKET, MODE_TRADES) == false || OrderCloseTime() > 0 )
    && lips> jaw && lastClose> lips) // условие выставления ордеров БАЙ
    SEND_BUY(); // вынесем "модуль" выставления ордера бай - добавить внизу
  
  if((OrderSelect( ticketsell, SELECT_BY_TICKET, MODE_TRADES) == false || OrderCloseTime() > 0 )
    && jaw> lips && lastClose< jaw) // условие выставления ордеров СЕЛЛ
    SEND_SELL(); // вынесем "модуль" выставления ордера сэлл - добавить внизу
  
  if (OrdersTotal()>=1)
      {
        if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES))
          {
            if(OrderType()==OP_BUY)
              {
                if(( lips== jaw || lips== teen) && lastClose== lips) // условия закрытия сделки БАЙ
                  while(OrdersTotal()>0)
                    {
                      CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");
                    }
              }
            if(OrderType()==OP_SELL)
              {
                if(( jaw== lips || jaw== teen) && lastClose== jaw) // условия закрытия сделки СЕЛЛ
                  while(OrdersTotal()>0)
                    {
                      CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");
                    }
              }
          }
        else
          {
            Print("ОШИБКА в Start()(блок закрытия при обратном движении) :OrderSelect() - ",GetLastError());
            return(-1);
          }
      }
         
  return(0);
  }

// "модуль" выставления ордера бай
void SEND_BUY()
  {
  double sl_buy;
  if(! SL)
  { 
  sl_buy=0;
  }
    else
    {
    sl_buy=Ask- SL*Point;
    }
    ticketbuy=OrderSend(Symbol(),OP_BUY, Lots1,Ask, slippage, sl_buy,Ask+ TP*Point,"take_trend", MagicNumber1,0,Blue);
          if( ticketbuy == -1)
          {
          Alert(Symbol(),"ошибка:бай", GetLastError());
          return(-1);
          }
            if( ticketbuy > 1)
            Alert (Symbol(),"бай - ок !");
  }

// "модуль" выставления ордера сэлл
void SEND_SELL()
  {
  double sl_sell;
  if(! SL)
  { 
  sl_sell=0;
  }
   else
   {
   sl_sell=Bid+ SL*Point;
   }
   ticketsell=OrderSend(Symbol(),OP_SELL, Lots1,Bid, slippage, sl_sell,Bid- TP*Point,"take_trend", MagicNumber2,0,Red);
         if( ticketsell == -1)
         {
         Alert(Symbol(),"ошибка:сэлл", GetLastError());
         return(-1);
         }
           if( ticketsell > 1)
           Alert (Symbol(),"сэлл - ок !");
   }

// МОДУЛЬ ЗАКРЫТИЯ СДЕЛОК ПРИ СМЕНЕ ТРЕНДА 
void CloseDirect(int cntr, string comm)
  {
    double closeprice;
    if(OrderSelect( cntr, SELECT_BY_POS, MODE_TRADES))
      {
        RefreshRates();
        if (OrderType()==OP_BUY)
          closeprice=Bid;
        else
          closeprice=Ask;
        if (OrderClose(OrderTicket(),OrderLots(), closeprice,10,Green))
        {
          Print( comm, OrderTicket());
        }
        else
          {
            Print("ОШИБКА в CloseDirect():OrderClose() - ",GetLastError());
          }
      }
    else
      {
        Print("ОШИБКА в CloseDirect():OrderSelect() - ",GetLastError());
      }
  }
 

Können Sie mir bitte sagen, wie ich ein Signal aus einem geglätteten rsi erhalten kann? (MA => RSI).

Grund der Beschwerde: