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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 37906
Benutzer: 6.082
Aktive Benutzer: 493
Links: 80
Wir begrüßen unseren neuesten Benutzer: idur
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 14 Stunden
- idur
vor einem Tag
- DarthTrade...
vor einem Tag
- Eren
vor einem Tag
- Rene1504
vor einem Tag
- ibdafx

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 53
Gesamt: 54
Team: 0
Team:  
Benutzer:  Leopold
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 27.09.15
Mitglied
 
Registriert seit: Sep 2015
Beiträge: 30
skynat befindet sich auf einem aufstrebenden Ast
Standard SL wird gesetzt TP aber nicht Fehler 130

Mahlzeit,

ich habe einen EA (mit Hilfe) auf der Basis von Puria programmiert und nun folgendes Problem.

StopLoss und TakeProfit werden prozentual berechnet und die Abstände habe ich auch schon recht groß gewählt sodass ich nicht glaube dass es am Broker liegt

StopLoss wird auch brav gesetzt, TakeProfit jedoch nicht was natürlich ungünstig ist. Des Weiteren ist mir aufgefallen, dass der StopLoss ab einer bestimmten Marke (ich nehme an dass es die ursprüngliche TP Marke ist) nachgezogen.

Allerdings finde ich ums Verrecken den Fehler nicht



Code:
 //StopLoss Longdeals setzen
      if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
         {
            if(OrderCloseTime()==0&&OrderStopLoss()==0)
               {
                  double StopLoss=NormalizeDouble(OrderOpenPrice()/(1+(StopLoss_Prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
               }
         }
         
         
      //StopLoss Shortdeals setzen
      if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
         {
            if(OrderCloseTime()==0&&OrderStopLoss()==0)
               {
                  double StopLoss=NormalizeDouble(OrderOpenPrice()*(1+(StopLoss_Prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
               }
         }
         
      //TakeProfit Longdeals setzen
      if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
         {
            if(OrderCloseTime()==0&&OrderTakeProfit()==0)
               {
                  double TakeProfit=NormalizeDouble(OrderOpenPrice()*(1+(TakeProfit_Prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),TakeProfit,OrderTakeProfit(),0,Yellow);
               }
         }
      
      
      //TakeProfit Shortdeals setzen
      if(OrderSelect(ShortOrder,SELECT_BY_TICKET)==true)
         {
            if(OrderCloseTime()==0&&OrderTakeProfit()==0)
               {
                  double TakeProfit=NormalizeDouble(OrderOpenPrice()/(1+(TakeProfit_Prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),TakeProfit,OrderTakeProfit(),0,Yellow);
               }
         }
  #2 (permalink)  
Alt 27.09.15
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Code:
double TakeProfit=NormalizeDouble(OrderOpenPrice()/(1+(TakeProfit_Prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),TakeProfit,OrderTakeProfit(),0,Yellow);
der "TakeProfit" ist auch an der Position des StopLoss, daher bekommst du Error 130 - invalid stop. Du musst es so schreiben:
Code:
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit,0,Yellow);

Du solltest mal deinen ganzen Code aufräumen, da scheint einiges verbesserungswürdig (dann ist das Testen auch einfacher!).
Aber solange er funktioniert!

Gruß

yytrader
  #3 (permalink)  
Alt 27.09.15
Mitglied
 
Registriert seit: Sep 2015
Beiträge: 30
skynat befindet sich auf einem aufstrebenden Ast
Standard

Ach verflucht - da sehe ich seit Tagen den Wald vor lauter Bäumen nicht!

Ja ich stecke noch in den Anfängen (habe früher mal etwas C programmiert) und muss mich da weiter durchwuseln.

Danke für die Hilfe.

Was meinst du mit Code aufräumen? Ich fand den bislang recht übersichtlich -.-
Thema geschlossen

Lesezeichen

Stichworte
error, fehler, fehler 130, mql4, programmierung, programmierung metatrader, takeprofit, takeprofit fehler 130, tp


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 10:05 Uhr.



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