Bitte helfen Sie mir, einen EA (Skript) zu finden, der entweder ein Raster von virtuellen schwebenden Aufträgen mit bestimmten Parametern erstellt oder Aufträge (einen nach dem anderen) in einer bestimmten Richtung mit einem bestimmten Take öffnet.
SELL_STOP - die Aufträge werden berechnet, aber SELL will es nicht. Nach dem Algorithmus wird der Auftrag SELL_STOP erteilt, wenn es keine gibt, und wenn es mindestens einen gibt, wird der Auftrag nicht erteilt.
SELL_STOP - Aufträge werden gezählt, aber SELL will nicht. Nach dem Algorithmus wird, wenn keine vorhanden sind, der Auftrag SELL_STOP erteilt, und wenn mindestens einer vorhanden ist, wird kein Auftrag erteilt.
Verwechseln Sie die LOCAL ORDER nicht mit der POSITION.
//+------------------------------------------------------------------+//| Script 1.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//---#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
//---CPositionInfo m_position; // object of CPositionInfo classCOrderInfo m_order; // object of COrderInfo class//---//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int count_buys = 0.0;
int count_sells = 0.0;
int count_buy_limits = 0.0;
int count_sell_limits = 0.0;
int count_buy_stops = 0.0;
int count_sell_stops = 0.0;
//---for(int i=PositionsTotal()-1; i>=0; i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
{
if(m_position.PositionType()==POSITION_TYPE_BUY)
count_buys++;
elseif(m_position.PositionType()==POSITION_TYPE_SELL)
count_sells++;
}
//---for(int i=OrdersTotal()-1; i>=0; i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
{
if(m_order.OrderType()==ORDER_TYPE_BUY_LIMIT)
count_buy_limits++;
elseif(m_order.OrderType()==ORDER_TYPE_SELL_LIMIT)
count_sell_limits++;
elseif(m_order.OrderType()==ORDER_TYPE_BUY_STOP)
count_buy_stops++;
elseif(m_order.OrderType()==ORDER_TYPE_SELL_STOP)
count_sell_stops++;
}
//--- you code
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+
Ich verstehe nicht, wofür der Parameter begin in der zweiten Variante der Funktion onCalculate zuständig ist. Jedes Mal, wenn die Funktion onCalculate aufgerufen wird, ist sie gleich 0. Ich habe den Wert von begin über die Funktion print ausgegeben. In dem Nachschlagewerk heißt es, dass der Anfang "der Ort ist, an dem die aussagekräftigen Daten beginnen". Das sagt mir gar nichts.
MisterRight: Ich verstehe nicht, wofür der Parameter begin in der zweiten Variante der Funktion onCalculate verantwortlich ist. Jedes Mal, wenn die Funktion onCalculate aufgerufen wird, ist sie gleich 0. Ich habe die Ausgabe des Anfangswertes über die Funktion print vorgenommen. In dem Nachschlagewerk heißt es, dass der Anfang "der Ausgangspunkt für aussagekräftige Daten" ist. Das sagt mir gar nichts.
Sehen Sie sich die Codes der offenen Indikatoren aus dem Beispiel an.
Wie kann ich den Kontotyp programmatisch verstehen? Hedge oder Netting?
Oder so
m_label_info[3].Description(m_account.MarginModeDescription());\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Bitte sagen Sie mir, wo der Fehler liegt:
SELL_STOP - die Aufträge werden berechnet, aber SELL will es nicht. Nach dem Algorithmus wird der Auftrag SELL_STOP erteilt, wenn es keine gibt, und wenn es mindestens einen gibt, wird der Auftrag nicht erteilt.Bitte sagen Sie mir, wo der Fehler liegt:
SELL_STOP - Aufträge werden gezählt, aber SELL will nicht. Nach dem Algorithmus wird, wenn keine vorhanden sind, der Auftrag SELL_STOP erteilt, und wenn mindestens einer vorhanden ist, wird kein Auftrag erteilt.Verwechseln Sie die LOCAL ORDER nicht mit der POSITION.
Verwechseln Sie die FERNBESTELLUNG nicht mit der POSITION.
Jedes Mal, wenn die Funktion onCalculate aufgerufen wird, ist sie gleich 0.
Ich habe den Wert von begin über die Funktion print ausgegeben.
In dem Nachschlagewerk heißt es, dass der Anfang "der Ort ist, an dem die aussagekräftigen Daten beginnen". Das sagt mir gar nichts.
Ich verstehe nicht, wofür der Parameter begin in der zweiten Variante der Funktion onCalculate verantwortlich ist.
Jedes Mal, wenn die Funktion onCalculate aufgerufen wird, ist sie gleich 0.
Ich habe die Ausgabe des Anfangswertes über die Funktion print vorgenommen.
In dem Nachschlagewerk heißt es, dass der Anfang "der Ausgangspunkt für aussagekräftige Daten" ist. Das sagt mir gar nichts.
Sehen Sie sich die Codes der offenen Indikatoren aus dem Beispiel an.
Sehen Sie sich die Codes der offenen Indikatoren aus dem Beispiel an.
Ich habe nachgesehen. Beginnt immer = 0.
Hier habe ich einen Teil des Codes aus dem AMA-Indikator
if(Anfang!=0)
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,ExtPeriodAMA+begin);
Und was soll mir dieser Code sagen, wenn die Bedingung begin!=0 niemals wahr ist?
Am Ende gibt es irgendeinen Unsinn heraus, viel mehr als geschlossene Aufträge.