Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4621
Beiträge: 41669
Benutzer: 6.996
Aktive Benutzer: 183
Links: 82
Wir begrüßen unseren neuesten Benutzer: baalexeyfranesay3088
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- baalexeyfr...
vor 6 Tagen
- Tbened
vor einer Woche
- coinboy
vor 2 Wochen
- Kat34r
vor 2 Wochen
- Goldstream

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 93
Gesamt: 93
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.12.20
Neues Mitglied
 
Registriert seit: Nov 2020
Beiträge: 9
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard EA Versuch

Hallo

Wie ihr wisst bin ich neu hier .

Ich habe versucht einen Halb automatischen ea zu schreiben (nicht lachen bin ja voller Anfänger).

funktioniert soweit auch . Ziel ist es den Stop nach zu ziehen (SMA).

Er hat aber noch Fehler :

er zieht nicht immer nach
er schliesst obwohl er nicht ins sl läuft

wer Lust und Laune hat könnte mir bitte helfen .Würde mich sehr freuen über jede Hilfe und Verbesserung .

Danke

-------------------------------------------------------

#property strict

input int Magic = 1 ;

int OnInit() {

return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason){


}

void OnTick() {


double ma = iMA (_Symbol,PERIOD_CURRENT,9,0,MODE_SMA,PRICE_CLOSE,0 );

for(int i = OrdersTotal()-1; i >= 0; i--){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol() ==_Symbol) {
if (OrderType()== OP_BUY){
double sl = ma;
sl = NormalizeDouble(sl,_Digits);
if(sl > OrderStopLoss()){
if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,O rderTakeProfit(),OrderExpiration())){
Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ...");


}
}

}else if(OrderType() == OP_SELL){


double sl = ma;
sl = NormalizeDouble(sl,_Digits);
if(sl > OrderStopLoss()){
if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,O rderTakeProfit(),OrderExpiration())){
Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ...");

}
}
}
}
}
}
}
Mit Zitat antworten
  #2 (permalink)  
Alt 07.12.20
Benutzerbild von Indikator-Trading
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 175
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Du fragst beides mal ab ob ma> sl ist. Der Stoploss ist aber für Buy Orders unter dem OpenPrice und für Sell Orders über dem OpenPrice.

Also wäre für Sell:

Code:
               
if(sl < OrderStopLoss())
die richtige Abfrage.
Mit Zitat antworten
  #3 (permalink)  
Alt 07.12.20
Benutzerbild von Indikator-Trading
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 175
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Hier noch dein Code in eine deutlich besser zu lesende Form gebracht:

Code:
   double ma = iMA(_Symbol,PERIOD_CURRENT,9,0,MODE_SMA,PRICE_CLOSE,0);

   double sl = ma;
   sl = NormalizeDouble(sl,_Digits);

   for(int i = OrdersTotal()-1; i >= 0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if((OrderSymbol() ==_Symbol) && (OrderType()== OP_BUY) && (sl > OrderStopLoss()))
            if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration()))
               Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ...");
         if((OrderSymbol() ==_Symbol) && (OrderType()== OP_SELL) && (sl < OrderStopLoss()))
            if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration()))
               Print(__FUNCTION__," > Order #",OrderTicket()," wurde angepasst ...");
        }
     }
Hinweis: Ich habe ihn jetzt nicht getestet!
Mit Zitat antworten
  #4 (permalink)  
Alt 07.12.20
Neues Mitglied
 
Registriert seit: Nov 2020
Beiträge: 9
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Danke

Lade mal die datei hoch .

weiss nicht genau wo ich das einfügen muss .

Danke
Angehängte Dateien
Dateityp: mq4 TEST.mq4 (1,4 KB, 3x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt 08.12.20
Neues Mitglied
 
Registriert seit: Nov 2020
Beiträge: 9
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

kriege ihn jetzt nicht mehr zum laufen .

bitte um hilfe

Danke
Mit Zitat antworten
  #6 (permalink)  
Alt 09.12.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.074
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Wofür NormalizeDouble?


Mein Vorschlag wäre, wie gehabt nen MA zu deklarieren. Allerdings die Werte global einstellbar zu machen. Vor allem für welche Kerze er gilt. Würde jetzt mal Bar 3, vielleicht Bar 2 vorschlagen. Der Rest lautet im Grunde SL = MA...
Mit Zitat antworten
  #7 (permalink)  
Alt 09.12.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.074
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Muss es unbedingt nen MA sein? Price wäre einfacher und es müssten keine größeren Berechnungen gemacht werden.
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2021 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------