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

Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wie kann ich die offene Auftragsart bestimmen?
OrderType()
Eigentlich sollten Sie mit einem Lehrbuch beginnen... :) Oder verwenden Sie zumindest F1 im MetaEditor
OP_BUY - Kaufposition,
OP_SELL - Position verkaufen,
OP_BUYLIMIT - ausstehender Kaufauftrag bei Erreichen eines bestimmten Niveaus, wenn der aktuelle Preis höher als das Niveau ist,
OP_BUYSTOP - ausstehender Kaufauftrag, wenn das angegebene Niveau erreicht wird und der aktuelle Kurs unter dem Niveau liegt,
OP_SELLLIMIT - ausstehender Verkaufsauftrag, wenn das angegebene Niveau erreicht wird und der aktuelle Preis unter dem Niveau liegt,
OP_SELLSTOP - schwebende Verkaufsorder, wenn das angegebene Niveau erreicht wird und der aktuelle Preis über dem Niveau liegt.
Die Bestellung muss mit der Funktion OrderSelect() vorausgewählt werden.
Eine Gleitkommazahl ist eine reelle Zahl wie double
Und anstelle von Ziffern eine Variable vom Typ int verwenden
Zum Beispiel int dg=MarketInfo ( Symbol(), MODE_DIGITS);
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;
bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell
//--------------------------------------------------------------- 3 --
// Учёт ордеров
for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;
if(Total!=0 || time==Time[1])return;
static int KolBars;
if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)
{
KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия
}
// Торговые критерии
// Критерий откр. Buy
Opn_B=true;
//--------------------------------------------------------------- 7 --
if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}
}
Bitte helfen Sie, ich frage zum 3. Mal. Ein elementarer EA eröffnet eine Kaufposition beim Erscheinen einer neuen Kerze (vorausgesetzt, die vorangegangenen 2 Kerzen sind grün) und schließt die Position beim Schließen der Kerze, bei der die Position eröffnet wurde, oder beim Schließen der nächsten Kerze.
Der, den Sie oben sehen, öffnet eine Position jedes Mal, wenn eine neue Kerze erscheint, ohne auf die Eröffnungskriterien zu reagieren, aber ich verstehe nicht, wie man die Position schließt, ich konnte es nicht im Tutorial oder in den Foren finden.
Fließkommawert ist eine reelle Zahl vom Typ Double
Und anstelle von Ziffern eine Variable vom Typ int verwenden
Zum Beispiel int dg=MarketInfo ( Symbol(), MODE_DIGITS);
Sie schrieben mir: "NormalizeDouble(), überprüfe das maximale/minimale Lot-Limit, wenn es fünfstellig ist - erhöhe Stop und Profit um das 10-fache".
In der Dokumentation heißt es: "Rundung einer Fließkommazahl auf die angegebene Genauigkeit. Die berechneten StopLoss- und TakeProfit-Werte sowie die Eröffnungskurse der Pending Orders müssen auf die Genauigkeit normalisiert werden, deren Wert in der vordefinierten Variable Digits" gespeichert wird.
Ich habe es nicht im Lehrbuch gefunden. Ich habe verstanden, dass ich den aktuellen Preis, StopLoss und TakeProfit mit NormalizeDouble normalisieren muss --- wie sollte ich es normalisieren?
double value -- statt double value kann ich z.B. Prise verwenden
int digits -- und diese Variable dg ist gleich MarketInfo( Symbol(), MODE_DIGITS); ???
Ich habe geschrieben: "NormalizeDouble(), prüfe auf maximales/minimales Lot-Limit, wenn fünf Ziffern - erhöhe Stop und Profit um das 10-fache".
In der Dokumentation heißt es: "Rundung einer Fließkommazahl auf die angegebene Genauigkeit. Die berechneten StopLoss- und TakeProfit-Werte sowie die Eröffnungskurse von Pending Orders müssen auf die Genauigkeit normalisiert werden, deren Wert in der vordefinierten Variable Digits" gespeichert wird.
Ich habe nicht gefunden, es in der Anleitung, ich verstehe, ich brauche, um NormalizeDouble verwenden ---, um den aktuellen Preis, StopLoss und TakeProfit normalisieren? Wenn ja, wie genau?
doppelter Wert -- stattdessen kann ich z.B. Prise setzen
int digits -- und diese Variable dg ist gleich MarketInfo( Symbol(), MODE_DIGITS); ???
int StopLoss=50; // StopLoss in Pips
int TakeProfit=150; // TakeProfit in Pips
intOrderDistance=50; // Ausstehender Auftragsabstand in Punkten
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int pt=MarketInfo(Symbol(), MODE_POINT); // Punktgröße in der Kurswährung
int dg=MarketInfo(Symbol(),MODE_DIGITS); // Anzahl der Nachkommastellen im Symbolpreis
int StLev=MarketInfo(Symbol(),MODE_STOPLEVEL); // Minimal zulässiges Stop-Loss/Stake-Profit-Niveau in Punkten
double pa=MarketInfo(Symbol(), MODE_ASK); // Briefkurs
double pb=MarketInfo(Symbol(), MODE_BID); // Geldkurs
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
double slB=NormalizeDouble(pa-StopLoss*pt, dg); // Normalisierung des StopLoss-Kursniveaus für die Kaufposition
double tpB=NormalizeDouble(pa+TakeProfit*pt, dg); // Normalisierung des TakeProfit-Preisniveaus für die Bid-Position
double slS=NormalizeDouble(pb+StopLoss*pt, dg); // normalizeStopLoss Kursniveau für Verkaufsposition
double tpS=NormalizeDouble(pb-TakeProfit*pt, dg); // Normalisierung des TakeProfit-Preisniveaus für die Verkaufsposition
doubleB=NormalizeDouble(pa+SetOrderDistance*pt, dg); // Normalisierung des Preisniveaus für die Platzierung einer schwebenden Kauforder
double SetS=NormalizeDouble(pb-SetOrderDistance*pt, dg); // Normalisierung des Preises für die Platzierung einer schwebenden Verkaufsorder
double slBS=NormalizeDouble(SetB-StopLoss*pt, dg); // Normalisierung des Preisniveaus des StopLoss für eine schwebende Kauforder
double tpBS=NormalizeDouble(SetB+TakeProfit*pt, dg); // Normalisierung des Preisniveaus von TakeProfit der schwebenden Kauforder
double slSS=NormalizeDouble(SetS+StopLoss*pt, dg); // Normalisierung des Preisniveaus von StopLoss für die anstehende Verkaufsorder
double tpSS=NormalizeDouble(SetS-TakeProfit*pt, dg); // Normalisierung des Preisniveaus von TakeProfit der anstehenden Verkaufsorder
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Finde es heraus... :)
Und vergessen Sie nicht den StopLev - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);
Überprüfen Sie den Mindestabstand zwischen Anhalten und Abheben, um sicherzustellen, dass er nicht kleiner als dieser Wert ist.
int StopLoss=50; // StopLoss in Punkten
int TakeProfit=150; // TakeProfit in Punkten
intOrderDistance=50; // Abstand der ausstehenden Aufträge in Punkten
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int pt=MarketInfo(Symbol(), MODE_POINT); // Punktgröße in der Kurswährung
int dg=MarketInfo(Symbol(),MODE_DIGITS); // Anzahl der Nachkommastellen im Symbolpreis
int StLev=MarketInfo(Symbol(),MODE_STOPLEVEL); // Minimal zulässiges Stop-Loss/Stake-Profit-Niveau in Punkten
double pa=MarketInfo(Symbol(), MODE_ASK); // Briefkurs
double pb=MarketInfo(Symbol(), MODE_BID); // Geldkurs
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
double slB=NormalizeDouble(pa-StopLoss*pt, dg); // Normalisierung des StopLoss-Kursniveaus für die Kaufposition
double tpB=NormalizeDouble(pa+TakeProfit*pt, dg); // Normalisierung des TakeProfit-Preisniveaus für die Bid-Position
double slS=NormalizeDouble(pb+StopLoss*pt, dg); // Normalisierung des StopLoss-Kursniveaus für die Verkaufsposition
double tpS=NormalizeDouble(pb-TakeProfit*pt, dg); // Normalisierung des TakeProfit-Preisniveaus für die Verkaufsposition
doubleB=NormalizeDouble(pa+SetOrderDistance*pt, dg); // Normalisierung des Preisniveaus für die Platzierung einer schwebenden Kauforder
double SetS=NormalizeDouble(pb-SetOrderDistance*pt, dg); // Normalisierung des Preises für die Platzierung einer schwebenden Verkaufsorder
double slBS=NormalizeDouble(SetB-StopLoss*pt, dg); // Normalisierung des Preisniveaus des StopLoss für eine schwebende Kauforder
double tpBS=NormalizeDouble(SetB+TakeProfit*pt, dg); // Normalisierung des Preisniveaus des TakeProfits der schwebenden Kauforder
double slSS=NormalizeDouble(SetS+StopLoss*pt, dg); // Normalisierung des Preisniveaus von StopLoss für die anstehende Verkaufsorder
double tpSS=NormalizeDouble(SetS-TakeProfit*pt, dg); // Normalisierung des Preisniveaus von TakeProfit der anstehenden Verkaufsorder
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Finde es heraus... :)
Und vergessen Sie nicht den StopLev - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);
Überprüfen Sie den Mindestabstand für die Einstellung von Haltestellen und Abfahrten, damit dieser Wert nicht unterschritten wird
Vielen Dank!!! Ich werde es mir ansehen! )
Windows neu installiert. Das Warnfenster erscheint nicht mehr. Es gibt eine akustische Benachrichtigung, es gibt einen Protokolleintrag, aber das schwebende Fenster erscheint nicht mehr.
Ich habe das Terminal gesäubert und alles neu kompiliert. Was könnte der Grund sein?
Wie erstelle ich eine Funktion und rufe sie auf?
Zum x-ten Mal, lesen Sie ein Lehrbuch, studieren Sie den Stoff... :)