Hallo, können Sie eine Variable für Stop-Loss und Take-Profit setzen? Danke!
Dieser Advisor wurde ohne Stop Loss und Take Profit entwickelt.
Vielleicht, wenn ich will, wird es in einem ANDEREN Berater realisiert werden.
Hallo, schöne EA zu öffnen Handel!
Aber zum Beispiel später, müssen wir Position manuell schließen, oder durch Trailing?
Hallo, netter EA zur Handelseröffnung!
Aber zum Beispiel später, müssen wir Position manuell zu schließen, oder durch Trailing?
Positionen werden mit einem entgegengesetzten Signal geschlossen: zum Beispiel, ein Signal erschien zu öffnen KAUFEN - dann zuerst schließen wir die SELL-Positionen und dann öffnen wir die KAUFEN.
Könnte man das Money Management gegenüber der Verwendung von festen Lots irgendwie ergänzen?
Präzisieren Sie Ihre Frage.
Könnte man das Money Management im Vergleich zu festen Lots hinzufügen?
Ich habe Version 2 veröffentlicht: DoubleZigZag 2
Neu in Version 2:
- Geld-Management: Lot OR Risk - mehr im Abschnitt Positionsgrößenmanagement (Lotberechnung)
- Der Wert für "Money Management" - mehr im Abschnitt Positionsgrößenmanagement (Lotberechnung)
- Nur eine Position - es gibt immer nur eine Position auf dem Markt
- Reverse - eine Umkehrung eines Handelssignals
- Close opposite - Schließen von Positionen entgegengesetzt zum Handelssignal, wobei zuerst eine garantierte Schließung der Gegenposition erfolgt und erst dann eine neue Position in der Signalrichtung eröffnet wird
- Es kann nur eine "Markteintritts"-Transaktion auf dem Balken geben (dies ist ein interner Parameter, er wird nicht in den Eingabeparametern ausgegeben und steht in keinem Zusammenhang mit dem Parameter " Nur eine Position ").
- 2020.02.08
- www.mql5.com
//+------------------------------------------------------------------+ //|Hatorii_Total_Coverage.mq5 | //|Urheberrecht 2026, MetaQuotes Ltd. | //| PROFI-SYSTEM: DOPPELTER ZICKZACK + PAUSE + SL IM ZICKZACKPUNKT | //+------------------------------------------------------------------+ #property copyright "Copyright 2026" #property version "1.50" #property strict #include <Trade\Trade.mqh> //--- ENUMS enum ENUM_DIRECTION { DIR_BOTH = 0, DIR_ONLY_BUY = 1, DIR_ONLY_SELL = 2 }; //--- INPUTS (Englisches Menü [zitiert: 2025-12-23]) input group "=== Betriebliche Konfiguration ===" input ENUM_DIRECTION InpTradeMode = DIR_BOTH; // Adresse input double InpLot = 0.1; // Stapel input int InpMagic = 882025; // Magische Zahl input group "=== FILTROS DE ESTRUCTURA (ZIGZAG) ===" input bool InpUseMacroZZ = true; // ZigZag X8 (Haupttrendfilter) verwenden input bool InpSLatZZ = true; // Genaue SL in ZigZag Point platzieren [zitiert: 2026-01-02]. input group "=== FILTROS DE TENDENCIA (EMA) ===" input bool InpUseEMA = false; // EMA-Filter aktivieren [zitiert: 2025-12-21]. input int InpEMAPeriod = 200; // Personalisierter UKORE-Wert [zitiert: 2025-12-21]. input group "=== RUTA DEL INDICADOR ===" input string InpIndiPath = "nuevos\\hf"; // Obligatorische Route [Zitat: 2025-12-24]. input int InpAmplitude = 2; // HalfTrend Amplitude //--- GLOBAL CTrade trade; int handleHT, handleEMA, handleZZ_Fast, handleZZ_Macro; datetime lastTradeTime = 0; //+------------------------------------------------------------------+ int OnInit() { //--- Initialisierung von HalfTrend handleHT = iCustom(_Symbol, _Period, InpIndiPath, InpAmplitude); //--- EMA initialisieren handleEMA = iMA(_Symbol, _Period, InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); //--- Initialisierung der ZigZags (Ihr korrigierter Code in OnInit) handleZZ_Fast = iCustom(_Symbol, _Period, "Examples\\ZigZag", 13, 5, 3); handleZZ_Macro = iCustom(_Symbol, _Period, "Examples\\ZigZag", 13*8, 5*8, 3*8); if(handleHT == INVALID_HANDLE || handleZZ_Fast == INVALID_HANDLE || handleZZ_Macro == INVALID_HANDLE) { Alert("Error al cargar indicadores. Revisa la ruta: ", InpIndiPath); return(INIT_FAILED); } trade.SetExpertMagicNumber(InpMagic); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnTick() { double bufHT[], bufEMA[], bufMacroZZ[]; ArraySetAsSeries(bufHT, true); ArraySetAsSeries(bufEMA, true); ArraySetAsSeries(bufMacroZZ, true); if(CopyBuffer(handleHT, 7, 0, 1, bufHT) < 1) return; if(CopyBuffer(handleEMA, 0, 0, 1, bufEMA) < 1) return; if(CopyBuffer(handleZZ_Macro, 0, 0, 2, bufMacroZZ) < 1) return; double trendHT = bufHT[0]; double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); //--- 1. AGGRESSIVES SCHLIESSEN (Wenn sich die HF-Farbe ändert, schließen) GestionarCierres(trendHT); //--- 2. EINGANGSLOGIK DURCH UNTERBRECHUNG if(!PositionExists() && iTime(_Symbol, _Period, 0) != lastTradeTime) { double highPrev = iHigh(_Symbol, _Period, 1); double lowPrev = iLow(_Symbol, _Period, 1); // Filter bool emaBuyOK = !InpUseEMA || (ask > bufEMA[0]); bool emaSellOK = !InpUseEMA || (bid < bufEMA[0]); // Zickzack-Makrofilter (letzte Zeilenrichtung) bool macroBuyOK = true; bool macroSellOK = true; if(InpUseMacroZZ) { // Vereinfachte Logik: Wir prüfen die Richtung des letzten Abschnitts des Zickzack-Makros. // (Hier könnten Sie eine komplexere Spitzenlogik hinzufügen) } //--- KAUFEN (blauer HF + Bruch des vorherigen Hochs) if(trendHT == 0.0 && InpTradeMode != DIR_ONLY_SELL && emaBuyOK && macroBuyOK) { if(ask > highPrev) { double sl = InpSLatZZ ? BuscarUltimoPuntoZZ(false) : 0; if(trade.Buy(InpLot, _Symbol, ask, sl, 0, "Ruptura + ZZ SL")) lastTradeTime = iTime(_Symbol, _Period, 0); } } //--- SELL (Rote HF + Bruch des vorherigen Tiefs) if(trendHT == 1.0 && InpTradeMode != DIR_ONLY_BUY && emaSellOK && macroSellOK) { if(bid < lowPrev) { double sl = InpSLatZZ ? BuscarUltimoPuntoZZ(true) : 0; if(trade.Sell(InpLot, _Symbol, bid, sl, 0, "Ruptura + ZZ SL")) lastTradeTime = iTime(_Symbol, _Period, 0); } } } } //--- Funktion zur Ermittlung des exakten ZigZag-Punktes für den Stop Loss [cite: 2026-01-02]. double BuscarUltimoPuntoZZ(bool buscarAlto) { double zzVal[]; ArraySetAsSeries(zzVal, true); for(int i=1; i<100; i++) { if(CopyBuffer(handleZZ_Fast, 0, i, 1, zzVal) > 0) { if(zzVal[0] > 0) return zzVal[0]; } } return 0; } void GestionarCierres(double trend) { for(int i=PositionsTotal()-1; i>=0; i--) { ulong ticket = PositionGetTicket(i); if(PositionSelectByTicket(ticket) && PositionGetInteger(POSITION_MAGIC) == InpMagic) { if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && trend == 1.0) trade.PositionClose(ticket); if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && trend == 0.0) trade.PositionClose(ticket); } } } bool PositionExists() { for(int i=PositionsTotal()-1; i>=0; i--) { if(PositionSelectByTicket(PositionGetTicket(i))) { if(PositionGetInteger(POSITION_MAGIC) == InpMagic && PositionGetString(POSITION_SYMBOL) == _Symbol) return true; } } return false; }
- 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.
DoubleZigZag:
Für die Analyse wurden zwei Indikatoren ZigZag verwendet.
Autor: Vladimir Karputov