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

 
Vladimir Karputov:

ENUM_TRADE_REQUEST_ACTIONS

Kennung

Beschreibung

HANDEL_AKTION_GESCHÄFT

Erteilung eines Handelsauftrags zur sofortigen Ausführung mit den angegebenen Parametern (Marktauftrag)

HANDEL_ANHÄNGIGE_AKTION

Einen Handelsauftrag zur Ausführung unter bestimmten Bedingungen erteilen (Pending Order)

Beispiel für die Handelsoperation TRADE_ACTION_PENDING zur Platzierung eines schwebenden Auftrags:

#property description "Example of placing pending orders"
#property script_show_inputs
#define  EXPERT_MAGIC 123456                             // MagicNumber of the expert
input ENUM_ORDER_TYPE orderType=ORDER_TYPE_BUY_LIMIT;   // order type
//+------------------------------------------------------------------+
//| Placing pending orders                                           |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- declare and initialize the trade request and result of trade request
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
//--- parameters to place a pending order
   request.action   =TRADE_ACTION_PENDING;                             // type of trade operation
   request.symbol   =Symbol();                                         // symbol
   request.volume   =0.1;                                              // volume of 0.1 lot
   request.deviation=2;                                                // allowed deviation from the price
   request.magic    =EXPERT_MAGIC;                                     // MagicNumber of the order
   int offset = 50;                                                    // offset from the current price to place the order, in points
   double price;                                                       // order triggering price
   double point=SymbolInfoDouble(_Symbol,SYMBOL_POINT);                // value of point
   int digits=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);                // number of decimal places (precision)
   //--- checking the type of operation
   if(orderType==ORDER_TYPE_BUY_LIMIT)
     {
      request.type     =ORDER_TYPE_BUY_LIMIT;                          // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;        // price for opening 
      request.price    =NormalizeDouble(price,digits);                 // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_SELL_LIMIT)
     {
      request.type     =ORDER_TYPE_SELL_LIMIT;                          // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point;         // price for opening 
      request.price    =NormalizeDouble(price,digits);                  // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_BUY_STOP)
     {
      request.type =ORDER_TYPE_BUY_STOP;                                // order type
      price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // price for opening 
      request.price=NormalizeDouble(price,digits);                      // normalized opening price 
     }
   else if(orderType==ORDER_TYPE_SELL_STOP)
     {
      request.type     =ORDER_TYPE_SELL_STOP;                           // order type
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;         // price for opening 
      request.price    =NormalizeDouble(price,digits);                  // normalized opening price 
     }
   else Alert("This example is only for placing pending orders");   // if not pending order is selected
//--- send the request
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());                 // if unable to send the request, output the error code
//--- information about the operation
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
  }
//+------------------------------------------------------------------+
 
Vladimir Karputov:

ENUM_TRADE_REQUEST_ACTIONS

Kennung

Beschreibung

HANDEL_AKTION_GESCHÄFT

Erteilung eines Handelsauftrags zur sofortigen Ausführung mit den angegebenen Parametern (Marktauftrag)

HANDEL_ANHÄNGIGE_AKTION

Einen Handelsauftrag zur Ausführung unter bestimmten Bedingungen erteilen (Pending Order)

Ich danke Ihnen!

 
Vladimir Karputov:

Beispiel für die Handelsoperation TRADE_ACTION_PENDING zur Platzierung eines schwebenden Auftrags:

Wladimir, kannst du es nicht auf Russisch schreiben?
 
Artyom Trishkin:
Wladimir, kannst du es nicht auf Russisch schreiben?

Das können Sie nicht. Ich habe nämlich vollständig aus der Referenz zitiert. Andernfalls ist die Sache aussichtslos: Jeder hat ein "Ticket" und einige haben "Tickets". Deshalb sind die Funktionen, die Hilfe und die Zitate aus der Hilfe auf Englisch.

 
Vladimir Karputov:

Das können Sie nicht. Ich habe nämlich den gesamten Text zitiert. Andernfalls ist die Sache aussichtslos: Jeder hat ein "Ticket" und einige haben "Tickets". Deshalb sind die Funktionen, der Verweis und die Zitate im Verweis in Englisch.

Und sie haben "Tickets", nur weil sie anfangen, mit Google zu übersetzen :)
In der offiziellen russischen Hilfe gibt es "Tickets".
In forest-da-drow nur aus freien Übersetzungen.
 

Hallo zusammen! Ich denke, die Frage richtet sich in erster Linie an die Profis (wie sich herausstellt). Seit einer Woche gibt es nur eine Frage zum Code.

Ein Beispiel: Wir wissen, dass die Kerze M5 5 Kerzen M1 enthält (zum Beispiel 00:00, 00:01, 00:02, 00:03 und 00:04). Wir werden nur diese Konstellation betrachten, d.h. wir lassen den Indikator auf M1 laufen und wollen die Werte des Indikators auf M5 sehen.

D.h. um die Daten des mittleren TFs auf dem unteren korrekt anzuzeigen, sollte ich alle 5 Balken des unteren TFs in einer Schleife durchlaufen, sobald sie erscheinen. D.h. der erste Balken erscheint 00:00, dann 00:01 usw. bis 00:04 und danach erscheint der nächste. Das bedeutet, dass der Zyklus von 0 bis 4 gehen sollte - das ist das Maximum, während Lücken in der Geschichte nicht berücksichtigt werden. Das Problem ist, dass ich den Zyklus von 0 bis 5 erhalte, und ich habe nicht genug Logik, um bis 4 zu kommen! Glauben Sie mir, ich kämpfe schon seit einer Woche damit und bitte Sie wirklich um Ihre Hilfe. Nachfolgend finden Sie einen sehr verkürzten Code, bei dem die Schleife bis 5 statt 4 geht. Ich möchte, dass es 4!!!!!

#property copyright ""
#property link      ""
#property version   ""
#property indicator_chart_window

//+----------------------------------------------+
//| Входные параметры индикатора                 |
//+----------------------------------------------+
input ENUM_TIMEFRAMES TF=PERIOD_M5;
int LastCountBar;
datetime tt;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,    // количество истории в барах на текущем тике
                const int prev_calculated,// количество истории в барах на предыдущем тике
                const datetime &time[],
                const double &open[],
                const double& high[],     // ценовой массив максимумов цены для расчёта индикатора
                const double& low[],      // ценовой массив минимумов цены  для расчёта индикатора
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   datetime IndTime[1];
//--- объявления локальных переменных
   int limit,bar;
//--- индексация элементов в массивах как в таймсериях
   ArraySetAsSeries(time,true);
//--- расчёт стартового номера first для цикла пересчёта баров
   if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора
     {
      limit=100; // стартовый номер для расчёта всех баров
      LastCountBar=limit;
     }
   else
      limit=LastCountBar+rates_total-prev_calculated; // стартовый номер для расчёта новых баров

//--- основной цикл расчёта индикатора
   for(bar=limit; bar>=0; bar--)
     {
      //--- копируем вновь появившиеся данные в массив IndTime
      if(CopyTime(Symbol(),TF,time[bar],1,IndTime)<=0)
         return(0);
         
      if(time[bar]>=IndTime[0] && time[bar+1]<IndTime[0])
        {
         LastCountBar=bar;
         //--- Далее проводим вычисления индикатора МТФ ...............
         Print(bar," ",IndTime[0]);
         //---
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Wie kann ich ein Bearbeitungsfenster für die Listenansicht hinzufügen?

https://www.mql5.com/en/docs/standardlibrary/controls/clistview

Ich habe die oben genannte Bibliothek. Ich möchte ein Bearbeitungsfeld mit einer Beschriftung in diese Liste einfügen. Können Sie mir sagen, wie ich das machen kann? Ich habe es versucht, aber es klappt nicht.

Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
Documentation on MQL5: Standard Library / Panels and Dialogs / CListView
  • www.mql5.com
//|                                             ControlsListView.mq5 | //|                        Copyright 2017, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| defines                                                          |  INDENT_LEFT                         (11)      ...
 
Artyom Trishkin:
Und sie haben "Tickets", nur weil sie anfangen, mit Google zu übersetzen :)
In der russischen offiziellen Referenz "tickety-boo".
Into the woods-da-drova nur aus freien Übersetzungen.
OK, ich gebe es zu: Ich wurde erwischt. Hat schnell geantwortet und die Sprache der Hilfe nicht gewechselt 😎.
 
Die Frage ist folgende. Kann ich 2 (oder mehr) Diagramme auf Knopfdruck so öffnen, dass sie vertikal angeordnet sind und gleichmäßig den gesamten Bildschirm ausfüllen?
 
Vladimir Karputov:
OK, ich gebe es zu: Ich wurde erwischt. Hat schnell geantwortet und die Sprache der Hilfe nicht gewechselt 😎.

Verstanden ;)

Grund der Beschwerde: