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: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #31 (permalink)  
Alt 24.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Das könnte nicht nur sein, sondern das ist es mit Sicherheit, weil Du setzt direkt die Pipwerte der Variablen StopLoss und TakeProfit ein!! Das geht natürlich nicht!
Print(StopLoss)!

Berechne doch einfach den zu setzenden StopLoss so, wie Du ihn auch weiter oben bei Dir im Programm schon berechnet hast!

traderdoc
Habe es jetzt wie folgt gemacht:

Code:
if (closedProfit < 0) {
    Print("T");

  // if(total < 1) {          //was soll total sein???
      if (lastorder == 0) {
      
      RefreshRates();
      S=Bid + second_sl;
      T=Bid - second_tp;
         ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, S, T, NULL, mymagicnumber);
         
      }
      if (lastorder == 1)
      {
      
      RefreshRates();
      S=Ask - second_sl;
      T=Ask + second_tp;
      ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,S, T, NULL, mymagicnumber);
      } 
   }
Allerdings jetzt ignoriert er komplett diese Bedinung und geht gleich wieder zurück zur Ursprünglichen. Im Journal wird nämlcih das T nicht angezeigt.
Woran kann das jetzt liegen?

Gruß
Aron
  #32 (permalink)  
Alt 24.06.15
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von saro2018 Beitrag anzeigen
Habe es jetzt wie folgt gemacht:

Code:
if (closedProfit < 0) {
    Print("T");

  // if(total < 1) {          //was soll total sein???
      if (lastorder == 0) {
      
      RefreshRates();
      S=Bid + second_sl;
      T=Bid - second_tp;
         ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, S, T, NULL, mymagicnumber);
         
      }
      if (lastorder == 1)
      {
      
      RefreshRates();
      S=Ask - second_sl;
      T=Ask + second_tp;
      ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,S, T, NULL, mymagicnumber);
      } 
   }
Allerdings jetzt ignoriert er komplett diese Bedinung und geht gleich wieder zurück zur Ursprünglichen. Im Journal wird nämlcih das T nicht angezeigt.
Woran kann das jetzt liegen?

Gruß
Aron
if (closedProfit < 0)
{
if (lastorder == 0)
{
RefreshRates();
S=Bid + second_sl;
T=Bid - second_tp;
Print("T =", T, " S =", S);
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, S, T, NULL, mymagicnumber);
}
if (lastorder == 1)
{
RefreshRates();
S=Ask - second_sl;
T=Ask + second_tp;
Print("T =", T, " S =", S);
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,S, T, NULL, mymagicnumber);
}
}


erst syntax fehler korrigieren
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (232,2 KB, 4x aufgerufen)
  #33 (permalink)  
Alt 24.06.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Diese! Änderungen haben aber nichts damit zu tun, ob das Programm unter
if (closedProfit < 0) einspringt oder nicht.
Wichtig wäre v.a., dass vorher auch S und T deklariert werden und wie hast Du nun das second_sl und second_tp berechnet?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #34 (permalink)  
Alt 24.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Diese! Änderungen haben aber nichts damit zu tun, ob das Programm unter
if (closedProfit < 0) einspringt oder nicht.
Wichtig wäre v.a., dass vorher auch S und T deklariert werden und wie hast Du nun das second_sl und second_tp berechnet?

traderdoc
Wie folgt habe ich die Sachen delariert und berechnet:

Code:
extern double TAKE      = 10;
extern double STOP      = 10;


double S, T;           //oben bei den blobal variables 
double second_tp;
double second_sl;

int init()
{ [...]

second_sl = NormalizeDouble(my_point * STOP, digits);

second_tp = NormalizeDouble(my_point * TAKE, digits);
Stimmt bei den Deklarationen und Berechnungen alles? Habe es praktisch genauso umgesetzt, wie auch bei der oberen Bedingung, falls eine Order im Profit schließt.
Ist damit alles richtig?

Gruß
Aron
  #35 (permalink)  
Alt 24.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pako Beitrag anzeigen
if (closedProfit < 0)
{
if (lastorder == 0)
{
RefreshRates();
S=Bid + second_sl;
T=Bid - second_tp;
Print("T =", T, " S =", S);
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, S, T, NULL, mymagicnumber);
}
if (lastorder == 1)
{
RefreshRates();
S=Ask - second_sl;
T=Ask + second_tp;
Print("T =", T, " S =", S);
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,S, T, NULL, mymagicnumber);
}
}


erst syntax fehler korrigieren
Syntax Fehler sind keine mehr drin. Die Berechnungen im Mittelteil sind da noch nicht drin gewesen deswegen bei dir die Syntax Fehler.

Das Problem ist, er erkennt diesen Befehl gar nicht. Im Journal zeigt er nur an, dass er bei der ersten Bedingung ist (falls Profit), die andere wird ignoriert..

Hier nochmal das Journal (T-1 heißt die erste Bedingun falls Gewinn).

Gruß
Aron
Angehängte Grafiken
Dateityp: jpg journal2.jpg (25,1 KB, 2x aufgerufen)
  #36 (permalink)  
Alt 24.06.15
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von saro2018 Beitrag anzeigen
Syntax Fehler sind keine mehr drin. Die Berechnungen im Mittelteil sind da noch nicht drin gewesen deswegen bei dir die Syntax Fehler.

Das Problem ist, er erkennt diesen Befehl gar nicht. Im Journal zeigt er nur an, dass er bei der ersten Bedingung ist (falls Profit), die andere wird ignoriert..

Hier nochmal das Journal (T-1 heißt die erste Bedingun falls Gewinn).

Gruß
Aron
wo ist code?
  #37 (permalink)  
Alt 24.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pako Beitrag anzeigen
wo ist code?
Den habe ich schonmal gepostet bis auf die Berechnungen in der Mitte. Diese funktionieren acuh, nur dieser untere Teil macht Schwierigkeiten mit der Orderöffnung fall der letzte Trade ein Verlust war. Es geht um die Gegenposition, sprich der Ordereröffnung bei einem Verlust gleich eine Gegenposition.

Gruß
Aron
  #38 (permalink)  
Alt 25.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Diese! Änderungen haben aber nichts damit zu tun, ob das Programm unter
if (closedProfit < 0) einspringt oder nicht.
Wichtig wäre v.a., dass vorher auch S und T deklariert werden und wie hast Du nun das second_sl und second_tp berechnet?

traderdoc
Bei dem neuen Stop und Takeprofit, den ich berechnet habe, kommt der Error 130 zwar nicht mehr, allerdings auch nicht mehr das T. Das bedeutet ja, dass er diese Bedinung nun ignoriert bzw. sie nicht ausführt.
Woran könnte das liegen?

Gruß
Aron
  #39 (permalink)  
Alt 25.06.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Der Code ist zu lang, um mal so den Fehler aus der Hüfte geschossen zu erkennen.
Der Weg, den Fehler zu eruieren, geht darüber, dass Du Dir überlegst, wie die Abfolge im Code ist und an den markanten Stellen über Print() Dir die Ausgabe anzeigen läßt. Hatte ich aber alles schon geschrieben.

Nochmals die korrekten Stopangaben haben nix mit dem Einsprung an dieser Stelle zu tun. Da liegt der Hase woanders begraben.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #40 (permalink)  
Alt 25.06.15
Neues Mitglied
 
Registriert seit: Mar 2015
Ort: Berlin
Beiträge: 28
saro2018 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Der Code ist zu lang, um mal so den Fehler aus der Hüfte geschossen zu erkennen.
Der Weg, den Fehler zu eruieren, geht darüber, dass Du Dir überlegst, wie die Abfolge im Code ist und an den markanten Stellen über Print() Dir die Ausgabe anzeigen läßt. Hatte ich aber alles schon geschrieben.

Nochmals die korrekten Stopangaben haben nix mit dem Einsprung an dieser Stelle zu tun. Da liegt der Hase woanders begraben.

traderdoc
Also ich habe jetzt an den markanten Stellen überall ein Print() versehen, um zu schauen wie die Abfolge ist. Wenn ich den Code jetzt verkleiner in dem ich den Wert gleich einsetze und den dann zu normalizeddouble umrechne, macht er wieder den gleichen fehler. er checkt zwar die bedinung wegen dem print sendet mir allerdings wieder den error 130.

Woran kann das liegen?

Gruß
Aron
Thema geschlossen

Lesezeichen

Stichworte
mql4, oco, order, order öffnen, programmierung, programmierung metatrader

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 20: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.
-----------------------------------------------------------------------------------------------------------------------------