Inhalte aufrufen

  • Über Facebook anmelden Über Twitter anmelden Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Verschachtelung

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
5 Antworten zu diesem Thema

  #1
OFFLINE   halobungie

Hallo,

 

folgende Formel:

 

if ((LastPrice_S1-MarketInfo(S1,MODE_ASK))>=Grid_S1*Point 
|| OpenOrders_S1()<1 
|| (LastPrice_S1+Grid_S1*Point)<=MarketInfo(S1,MODE_ASK) )
 
{
dann....;
}
 
 
Das letzte " ||  = ODER" möchte ich ein- oder ausschalten können.
 
Wie kann ich dies mit einer weiteren "if"-Verschachtelung ein- oder ausschalten?
 
Hab's nun schon sehr lange probiert, leider ohne Erfolg.
 
Kann mir bitte jemand auf die Sprünge helfen?
 
Viele Grüsse,
halobungie

 



  #2
OFFLINE   traderdoc


if ((LastPrice_S1 - MarketInfo(S1,MODE_ASK)) >= Grid_S1*Point || OpenOrders_S1() < 1) {
if (Eingeschaltet && LastPrice_S1 + Grid_S1*Point <= MarketInfo(S1,MODE_ASK)) {
...
}
}

Eingeschaltet ist dabei eine bool-Variable, die entsprechend auf true oder false steht.

traderdoc
  • €urix und ralf9 gefällt das

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #3
OFFLINE   halobungie

Hallo TraderDoc,

einfach Genial - Du hast schon wieder bewiesen, dass du ein absoluter Digitalkünstler bist!!!

Herzlichen Dank!!!

halobungie



  #4
OFFLINE   titanfx

Hier ist leider ein Fehler drin.
Die dritte Verknüpfung ist mit UND verknüpft, daher wird nur ausgeführt wenn eine von den ersten Verknüpfungen Wahr ist.

Richtig wäre es so:

if ((LastPrice_S1 - MarketInfo(S1,MODE_ASK)) >= Grid_S1*Point || OpenOrders_S1() < 1 ||
(Eingeschaltet && LastPrice_S1 + Grid_S1*Point <= MarketInfo(S1,MODE_ASK)) {
...
}

2.te if braucht mir also nicht
IF führt immer zu UND Verknüpfung
  • traderdoc gefällt das

  #5
OFFLINE   traderdoc

Vorweg, so wie es @titanfx geschrieben hat, ist es 100% korrekt und die kürzeste und eleganteste Form.

Ich hätte nur die ganze Zeit überlegt, warum ich das zweite if eingefügt hatte. Nun, wahrscheinlich weil
@halobungie den dritten Term über ein if regeln wollte.

Und um es, nur! für theoretische Lehrzwecke, nun doch noch richtig mit dem if zu vervollständigen, hätte der Code demnach so lauten müssen:

if ((LastPrice_S1 - MarketInfo(S1,MODE_ASK)) >= Grid_S1*Point || OpenOrders_S1() < 1) {
...
} else {
if (Eingeschaltet && LastPrice_S1 + Grid_S1*Point <= MarketInfo(S1,MODE_ASK)) {
...
}
}

Nun müsste man bei beiden ... Anweisungen denselben Code schreiben und deshalb wäre aus "Ästhetik"-Gründen und Einschränkung an Übersichtlichkeit davon abzuraten.

traderdoc

Bearbeitet von traderdoc, 10 April 2017 - 11:17 Uhr,

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #6
OFFLINE   halobungie

Hallo TitanFX und TraderDoc,

ihr habt Recht, da war wirklich ein Fehler drinn. 

Danke vielmals, dass ihr dies noch gesehen habt!!!

Viele Grüsse und Besten Dank!

halobungie


Bearbeitet von halobungie, 10 April 2017 - 10:25 Uhr,






0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer