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 expertinputENUM_ORDER_TYPE orderType=ORDER_TYPE_BUY_LIMIT; // order type//+------------------------------------------------------------------+//| Placing pending orders |//+------------------------------------------------------------------+voidOnStart()
{
//--- declare and initialize the trade request and result of trade requestMqlTradeRequest 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 orderint offset = 50; // offset from the current price to place the order, in pointsdouble price; // order triggering pricedouble point=SymbolInfoDouble(_Symbol,SYMBOL_POINT); // value of pointint digits=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS); // number of decimal places (precision)//--- checking the type of operationif(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
}
elseif(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
}
elseif(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
}
elseif(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
}
elseAlert("This example is only for placing pending orders"); // if not pending order is selected//--- send the requestif(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // if unable to send the request, output the error code//--- information about the operationPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
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.
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".
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//+----------------------------------------------+//| Входные параметры индикатора |//+----------------------------------------------+inputENUM_TIMEFRAMES TF=PERIOD_M5;
int LastCountBar;
datetime tt;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total, // количество истории в барах на текущем тикеconstint prev_calculated,// количество истории в барах на предыдущем тикеconstdatetime &time[],
constdouble &open[],
constdouble& high[], // ценовой массив максимумов цены для расчёта индикатораconstdouble& low[], // ценовой массив минимумов цены для расчёта индикатораconstdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &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--)
{
//--- копируем вновь появившиеся данные в массив IndTimeif(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);
}
//+------------------------------------------------------------------+
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.
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?
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
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:
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!
Beispiel für die Handelsoperation TRADE_ACTION_PENDING zur Platzierung eines schwebenden Auftrags:
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.
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.
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!!!!!
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.
Und sie haben "Tickets", nur weil sie anfangen, mit Google zu übersetzen :)
OK, ich gebe es zu: Ich wurde erwischt. Hat schnell geantwortet und die Sprache der Hilfe nicht gewechselt 😎.
Verstanden ;)