[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 279
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
Was ist, wenn er einen Code für 70 Pfund statt für 60 Pfund dabei hat? :) ;)
Hallo, können Sie mir sagen, wie ich feststellen kann, wie viele Pips eine Order im Gewinn ist?
Wenn eine Kaufposition eröffnet wird, ziehen Sie den Eröffnungskurs vom aktuellen Geldkurs ab. Wenn es sich um eine Verkaufsposition handelt, ziehen Sie den aktuellen Briefkurs vom Eröffnungskurs ab.
Die Scouts fanden heraus, dass OrderClosePrice() anstelle von Bid oder Ask verwendet werden kann
Liebe Forumsnutzer, könnten Sie mir bitte sagen, wie ich eine Variable aus iCustom in ArrayMaximum einfügen kann?
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Es wird das Element mit dem maximalen Wert gesucht. Die Funktion gibt die Position des maximalen Elements im Array zurück.Die Suche ist ein Prozess, nicht eine Variable. Das heißt, Sie können einem Array-Element einen Indikatorwert zuweisen und dann das Array mit ArrayMaximum nach dem größten Element durchsuchen.
Dazu sollten Sie lesen, was ArrayMaximum ist.
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Suche nach dem Element mit dem maximalen Wert. Die Funktion gibt die Position des maximalen Elements im Array zurück.Die Suche ist ein Prozess, nicht eine Variable. Das heißt, Sie können einem Arrayelement einen Indikatorwert zuweisen und dann das Array mit ArrayMaximum nach dem maximalen Element durchsuchen.
Guten Tag zusammen, ich sitze gerade vor meinem Computer und schlage meinen Kopf gegen die Tastatur - ich kann einen Fehler im Code nicht beheben... Bitte helfen Sie einem Anfänger.
Hier ist mein Eulencode:
extern double TakeProfit = 500;
extern double Lots = 0.1;
extern double Stoploss = 30;
extern double TrailingStop = 30;
externer String Indikator_1 = "SAR (SAR_STEP)";
extern double SAR_Step = 0,02;
extern double SAR_MaxStep =0.2;
extern double GeneralShift = 0; // 0 - nicht geschlossener Balken, 1 - geschlossen.
// Dies sind die Variablen, die in die
// angezeigt während
// Verbindung des Expert Advisors mit dem Chart
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
Doppel-A;
int b;
int total, ticket, cnt;
//nur Variablen, die im Programm verwendet werden sollen
if(Balken<100)
{
Print("Balken kleiner als 100");
zurück(0);
}
// Diese Bedingung prüft, ob der Chartverlauf mehr als 100 Candlesticks enthält, und gibt andernfalls einen Fehler zurück,
// Es wird ein Fehler erzeugt. Es ist erforderlich, Ihre Aufmerksamkeit auf das Problem zu lenken, dass
// Mangel an Informationen
if(TakeProfit<5)
{
Print("TakeProfit kleiner als 5");
zurück(0);
}
// Diese Bedingung prüft das TakeProfit-Niveau (eine der externen Variablen,
// der die Höhe der Gewinnmitnahme steuert. Es wird benötigt, um zu überprüfen, ob // Sie die Take-Profit-Ebenen festgelegt haben.
// Prüfen Sie, ob Sie Gewinnmitnahmen auf einem Niveau festgelegt haben, das von Ihrer Brokerfirma nicht erlaubt ist.
// Für Ihr Maklerunternehmen nicht zulässig. Wenn Ihr Expert Advisor fehlschlägt, wissen Sie also genau, was der Fehler ist.
// wo der Fehler liegt. Ich empfehle dringend, sie einzustellen.
total=AuftragsSumme();
if(gesamt<1)
// Diese Prüfung ist erforderlich, um zu vermeiden, dass mehrere identische Positionen auf einmal geöffnet werden. Wenn diese Option nicht aktiviert ist, wird Ihr EA beispielsweise ausgelöst, wenn sich die Stochastik in der überkauften Zone befindet, und er handelt so lange mit jedem Tick, bis er die gesamte Marge aufgebraucht hat.
// Um die Anzahl der offenen Stellen zu begrenzen, wird daher diese
// Begrenzer. Wenn sie gesetzt ist, wird der Advisor nicht mehr als eine bestimmte // Anzahl von
// Anzahl der Positionen <x
{
// keine offenen Aufträge identifiziert
if(KontoFreieMarge()<(1000*Lose))
{
Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin();
zurück(0);
}
// Ein weiteres Hilfsstück des Codes. Wenn nicht genügend Geld auf dem Konto ist, wird es
// gibt einen Fehler aus. Dieser Teil ist völlig nutzlos, wenn der Expert Advisor funktioniert
// Echtzeit, aber es ist sehr nützlich für Tests in der Vergangenheit.
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); // BUY eröffnen
// Endlich kommen wir zum interessantesten Teil. Anstelle dieser x's müssen wir einfügen
// Bedingung, die einen KAUF auslöst.
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point, "comment",16384,0,Green);
// Dies sind die Kaufbedingungen. Im Prinzip gibt es hier nichts zu ändern, aber um meinen Horizont zu erweitern, erweitere ich den Rahmen.
// Ich werde entschlüsseln, was hier steht. Hier steht, dass wir kaufen müssen
// (OP_BUY) das aktuelle Symbol (Währungspaar, an dessen Chart dieser Expert Advisor angehängt wurde),
// Handelsgröße Lots (Variable, die zu Beginn festgelegt wird). Marktpreis, mit
// Schlupf 3, und mit einem StopLoss und TakeProfit, die auf den
am // Anfang wird der Handel mit dem Kommentar "comment" gekennzeichnet, mit der entscheidenden Nummer 0, und am
// Am Ort des Kaufs wird auf der Karte ein grüner Schieberegler mit dem Bestimmungscode zu sehen sein
// 16384
if(Ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der BUY-Bestellung: ",GetLastError());
zurück(0);
}
// Dieser Block wird nur benötigt, um zu protokollieren, ob alles gut gelaufen ist.
// Oder um einen Fehler aufzuzeichnen, der zum Scheitern einer Aktion geführt hat.
// Nun das Gleiche mit der Verkaufswette. Anstatt YYYYYYY - Bedingung
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0])
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
if(Ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Fehler bei der Eröffnung einer SELL-Order: ",GetLastError());
zurück(0);
}
zurück(0);
}
// Jetzt der Ausgang. Auch hier hat sich nichts geändert, es ist nur RRRRRR - Zustand
// Schließen eines Geschäfts durch KAUFEN, ZZZZZZZZZZZZ - durch VERKAUFEN
for(cnt=0;cnt
// alle offenen Stellen werden mit für gesucht
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // Prüfung auf offene Positionen
OrderSymbol()==Symbol()) // Prüfung auf Symbol
{
if(OrderType()==OP_BUY) // Long-Position wird eröffnet
{
// sollte sie geschlossen werden?
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) //KAUFEN schließen.
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // Position schließen
return(0); // exit
}
// Prüfung auf Nachlaufstopp
if(NachlaufenderStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
zurück(0);
}
}
}
}
else // Dasselbe mit der Short-Position
{
// sollte sie geschlossen werden?
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0])//VERKAUFEN abschließen
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // Position schließen
return(0); // exit
}
// Prüfung auf Nachlaufstopp
if(NachlaufenderStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
zurück(0);
}
}
}
}
}
}
}
zurück(0);
//--------
}
//-------- das Ende.
Ein unerfahrener Autohändler kann sich keinen Käfer einfangen!!! BITTE BITTE HELFEN SIE MIR!!!!!!!!!!!!!!!!!!
'}' - unausgewogene Klammern C:\Program Files (x86)\Forex4you MetaTrader 4\experts\Saurentios V101.mq4 (167, 1)