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: 4973
Beiträge: 43254
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 611
Gesamt: 612
Team: 0
Team:  
Benutzer:  JosephTK
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 31.12.21
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard Take Profit

Hallo

Ich würde bitte mit Hilfe brauchen . Danke !!!!!

Habe mich an einen EA versucht .

1) Problem wenn ich keinen TP und SL angebe macht er keine Ordes ???
Der EA soll auch mehrere Ordes eröffnen .
2) Ich hätte gerne einen Takeprofit in Euro (zB. wenn 100 Euro erreicht sind
alle Positionen schliesen )

3) Ist es möglich zB. ich habe ein Ziel 300 Euro TP (soll beim erreichen aber nicht alle Positionen schließen ) sondern einen Trailing Stop auf zB. 200 Euro setzen (ein Wert wäre super zB. beim erreichen von 300 kommt der Trailing Stop 30 % darunter und wird nachgezogen ) und im abstand von 100 Euro (zB. 30 % )nachgezogen ????

Danke

Freue mich über jede Hilfe !!!!!

Code:

// 31.12.2021 V-2


#property strict

 input double Lots = 0.01;
 input int SLPoints = 500;
 input int TPPoints = 500;
 input int TSLPoint = 500;
 
 
 input ENUM_TIMEFRAMES Timeframe = PERIOD_H4; 
 input int PeriodsMAFast = 50;
 input ENUM_MA_METHOD MethdeMAFast = MODE_SMA;
 input int PeriodsMASlow = 200;
 input ENUM_MA_METHOD MethdeMASlow = MODE_SMA;
 
 input string Commententary = "Andy";
 input int Magic = 210879 ;
 
 datetime timestamp ;
  
int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {

   
  }

void OnTick(){


   TrailingStop();  


   if(timestamp == iTime(Symbol(),Timeframe,0)) return ;
   timestamp = iTime(Symbol(),Timeframe,0);

  
   
    double maFast = iMA (Symbol(),Timeframe,PeriodsMAFast ,0,MethdeMAFast ,PRICE_CLOSE,1);
    double maSlow = iMA (Symbol(),Timeframe,PeriodsMASlow ,0,MethdeMASlow ,PRICE_CLOSE,1);
    double maFastLast = iMA (Symbol(),Timeframe,PeriodsMAFast ,0,MethdeMAFast ,PRICE_CLOSE,2);
    double maSlowLast = iMA (Symbol(),Timeframe,PeriodsMASlow ,0,MethdeMASlow ,PRICE_CLOSE,2); 
      
    if(maFast > maSlow && maFastLast <  maSlowLast ){
    Print("Long");
    int ticket = executeLong();
    Print(IntegerToString(ticket));
 
  }else if ( maFast < maSlow && maFastLast >  maSlowLast ){
   
    Print("Short");
    int ticket = executeShort() ;
    Print(IntegerToString(ticket));
   }
  }
 
   int executeLong ( ){
   double entry = Ask ;
   entry = NormalizeDouble (entry,Digits);
   
   double sl = entry - SLPoints * Point;
   sl= NormalizeDouble(sl,Digits);
   
   double tp = entry + TPPoints * Point;;
   tp = NormalizeDouble(tp,Digits);
   
   int ticket = OrderSend (Symbol(),OP_BUY,Lots,entry,1000,sl,tp,Commententary,Magic);
   
   return ticket;
   
    }  
   
   int executeShort (){
   double entry = Bid ;
   entry = NormalizeDouble (entry,Digits);
    
   double sl = entry + SLPoints * Point;
   sl= NormalizeDouble(sl,Digits);
   
   double tp = entry - TPPoints * Point;
   tp = NormalizeDouble(tp,Digits);
    
   int ticket = OrderSend (Symbol(),OP_SELL,Lots,entry,1000,sl,tp,Commententary,Magic);
   
   return ticket;
   
   }
     
  void TrailingStop(){
    for(int i = 0; i < OrdersTotal(); i++){
      if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic ) {
        if(OrderType() == OP_BUY){
          double sl = Bid - TSLPoint * Point ;
          sl = NormalizeDouble(sl,Digits);
          if(sl > OrderStopLoss()){
            bool res = OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration());
            
            }
            }
         if(OrderType() == OP_SELL){
          double sl = Ask + TSLPoint * Point ;
          sl = NormalizeDouble(sl,Digits);
          if(sl < OrderStopLoss() || OrderStopLoss() == 0){
            bool res = OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration());   
            
            
            
         }
        }
       }
      }
     }
  #2 (permalink)  
Alt 01.01.22
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

1) Wird Print("Long"); oder Print("Short"); ausgegeben?
__________________

Easy Trading Assistant
  #3 (permalink)  
Alt 01.01.22
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

Ja aber leider wenn ich keinen tp und sl angebe macht
Er nix .

Lg
  #4 (permalink)  
Alt 01.01.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, dann schau doch mal in die Reiter "Experten" und/oder Journal des Terminal, welche Fehlermeldung der Ea dort ausgibt.
Ich vermute mal, dass dieser Broker ein ECN-Broker ist, und dann muss man erst die Order ohne sl und tp öffnen, und erst nach dem Öffnen kann man den sl und tp ändern (setzen).

Happy new year!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 01.01.22
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

Das ist die fehlermeldung


130 ERR_INVALID_STOPS Invalid stops

glg
  #6 (permalink)  
Alt 01.01.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Jep, genau.
Dann musst Du die Orders erst ohne SL und TP öffnen (entweder im Code durch Abfangen des Fehlers 130 oder gleich Öffnung immer ohne SL und TP) und erst danach mittels OrderModify() den SL und TP ändern.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 01.01.22
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

Danke das hab ich hinbekommen Danke

und jetzt hätte ich gerne einen TP in Euro , zu dem Thema finde ich nirgens etwas .

Danke
  #8 (permalink)  
Alt 01.01.22
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Da wirst Du wohl für jedes WP ausrechnen müssen, welchen Wert ihre Punkte in EURO haben. Viel Spass.

Edit: Die Margin, die man für jedes WP in Euro hinter legen muss, müsste eigentlich auch schon weiter helfen...
  #9 (permalink)  
Alt 02.01.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ach der @MA-EA wieder???

Die Formel ist doch ganz einfach:

TP-Kurs = OrderOpen + (Profit*Point/Lot/Tickvalue)
bzw.
TP-Kurs = OrderOpen - (Profit*Point/Lot/Tickvalue)

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #10 (permalink)  
Alt 02.01.22
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 40
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Danke

Werde es probieren umzusetzen .

Danke
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 +1. Es ist jetzt 23:51 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.
-----------------------------------------------------------------------------------------------------------------------------