Sehr nützlich. Danke!
Steven
Das nachfolgende Beispiel schlägt mit einem Fehler fehl.
Programmierer, Hilfe mit mql5, bitte!!!
Ist es möglich, einfach eine gewöhnliche Trailing-Funktion wie in mql4 ohne Klassen zu verwenden? So wie z.B. die Funktion TradeSizeOptimised in Moving Averages.mq5 implementiert ist.
Ich habe schon alles durchsucht, in Beispielen, Artikeln, Forum - ich habe nichts gefunden. Ich habe mich schon komplett verirrt.... Vielleicht hat jemand eine fertige Variante, ich wäre sehr dankbar!!! - ich möchte unbedingt an der Meisterschaft teilnehmen.
Programmierer, Hilfe mit mql5, bitte!!!
Ist es möglich, einfach eine gewöhnliche Trailing-Funktion wie in mql4 ohne Klassen zu verwenden? So wie z.B. die Funktion TradeSizeOptimised in Moving Averages.mq5 implementiert ist.
Ich habe schon alles durchsucht, in Beispielen, Artikeln, Forum - ich habe nichts gefunden. Ich habe mich schon komplett verirrt.... Vielleicht hat jemand eine fertige Variante, ich wäre sehr dankbar!!! - ich möchte unbedingt an der Meisterschaft teilnehmen.
hier geht's
int TrailingStop() { if(PositionSelect(Symbol())) // Position auswählen { //MqlTradeRequest m_request;// Deklarieren Sie die Struktur der Anfrage an den Server //MqlTradeResult m_result;// Deklarieren Sie die Antwortstruktur des Servers double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // Schreiben Sie den Angebotspreis in die Variable double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // Schreiben in die Variable Briefkurs double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // Schreiben Sie den Eröffnungskurs der Position in die Variable double PositionSL=PositionGetDouble(POSITION_SL); // Schreiben des Stop-Loss-Niveaus in die Variable double PositionTP=PositionGetDouble(POSITION_TP); // Take-Profit-Level in die Variable schreiben if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // Positionsart definieren { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // keine Schleppnetzfischerei, bis wir mit dem ersten Stopptransfer die Gewinnschwelle erreichen können { if(Bid-PositionSL>Trail*_Point) //Grundbedingung für die Notwendigkeit, den Stop Loss zu verschieben { //--- Daten in die Struktur schreiben request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // Senden Sie die Anfrage an den Server } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // keine Schleppnetzfischerei, bis wir mit dem ersten Stopptransfer die Gewinnschwelle erreichen können { if(PositionSL-Ask>Trail*_Point) //Grundbedingung für die Notwendigkeit, den Stop Loss zu verschieben { //--- Daten in die Struktur schreiben request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // Senden Sie die Anfrage an den Server } } } } return(0); }
hier geht's los
Ich nehme an (wahrscheinlich nicht ohne Grund), dass das Ergebnis besser als Parameter übergeben wird :)
Ansonsten gibt es keine Möglichkeit, es zu analysieren. Das ist irgendwie nicht gut...
PS
Ich würde auch zwei Funktionen erstellen - TrailingStopBuy und TrailingStopSell
Ich nehme an (wahrscheinlich nicht ohne Grund), dass das Ergebnis besser als Parameter übergeben wird :)
Ansonsten gibt es keine Möglichkeit, es zu analysieren. Das ist irgendwie nicht gut...
PS
Ich würde auch zwei Funktionen erstellen - TrailingStopBuy und TrailingStopSell.
Nun, ich gab dem Mann ein Beispiel, weil er schon sein Gehirn gemacht hat, wie man ein gewöhnliches Trailing schreibt, und dann ließ ihn ein wenig denken, das würde ohne Fehler funktionieren, im Tester im Prinzip, und dieses Design funktioniert gut. im wirklichen Leben nicht überprüfen
Bitte sehr.
sergey1294,
Nochmals vielen Dank, alles funktioniert!!!
Ich habe noch eine kleine Frage: Wie kann ich eine Prüfung mit einer magischen Zahl in die Funktion einfügen? Ich versuche, eine solche Prüfung einzufügen:
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }..... aber das macht den ganzen Handel kaputt.....
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Anlegen eigener Trailing Stops :
Die Grundregel für Händler: Lass‘ Gewinne wachsen, trenn‘ dich von Verlusten! In diesem Beitrag betrachten wir eine der grundlegenden Techniken zur Befolgung dieser Regel: die Verschiebung der schützenden Verlustbegrenzung (Stop Loss Level) nach einer Gewinnsteigerung einer Position, m. a. W.: den Trailing Stop Level, die nachlaufende Stop-Grenze. Sie finden das schrittweise Vorgehen zur Einrichtung einer Klasse zur nachlaufenden Verlustbegrenzung bei den Indikatoren SAR und NRTR. Jedermann ist in der Lage, diese Trailing Stops in die eigenen Expert-Systeme einzufügen oder sie eigenständig zur Überwachung der Positionen des eigenen Kontos zu verwenden.
Autor: Dmitry Fedoseev