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: 4798
Beiträge: 42557
Benutzer: 7.159
Aktive Benutzer: 125
Links: 83
Wir begrüßen unseren neuesten Benutzer: Hery Priyanto
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- Hery...
vor 4 Tagen
- expertfx
vor einer Woche
- teig
vor einer Woche
- windowsmov...
vor einer Woche
- Grabman.19...

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 37
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());   
            
            
            
         }
        }
       }
      }
     }
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 421
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

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

Easy Trading Assistant
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 37
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

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

Lg
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.618
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.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 37
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Hallo

Das ist die fehlermeldung


130 ERR_INVALID_STOPS Invalid stops

glg
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.618
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.
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 37
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
Mit Zitat antworten
  #8 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.131
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...
Mit Zitat antworten
  #9 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.618
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.
Mit Zitat antworten
  #10 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 37
blackjack01 befindet sich auf einem aufstrebenden Ast
Standard

Danke

Werde es probieren umzusetzen .

Danke
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 03:47 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2022 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.
-----------------------------------------------------------------------------------------------------------------------------