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: 4978
Beiträge: 43260
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 22 Stunden
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.12.20
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
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 ...");

}
}
}
}
}
}
}
  #2 (permalink)  
Alt 07.12.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
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.
  #3 (permalink)  
Alt 07.12.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
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!
  #4 (permalink)  
Alt 07.12.20
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
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)
  #5 (permalink)  
Alt 08.12.20
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

kriege ihn jetzt nicht mehr zum laufen .

bitte um hilfe

Danke
  #6 (permalink)  
Alt 09.12.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
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...
  #7 (permalink)  
Alt 09.12.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
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.
Thema geschlossen

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 +2. Es ist jetzt 07:39 Uhr.





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