|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Letztes Tief eines Indikators finden.
Hallo, mein EA ist nun fast fertig "yeay". Jetzt geht es an Moneymanagment und Riskomanagment und genau da hab ich ein Problem. Mein Stoploss wird an einem bestimmt Punkt gesetzt, so weit so gut. Nun möchte ich mit einem Modifizierten ZigZag Indikator den Stoploss nachziehen. Er soll den Stoploss immer am letzten Tief setzen.
Hier findet er die Punkte. Code:
//Value int i = 0; double value = 0; int count = 0; while (count < 4) { value = iCustom(Symbol(),0,"Myindi",2,0,i); if (value > 0) { ZIGZAG[count] = value; count++; } i++; } Code:
if( buy_condition_1 ) { LongTicket = OrderSend(Symbol(),OP_BUY,LotSize,Ask,0,0,0,"Buy Order",MagicNumber,0,Green); L2 = OrderSelect(LongTicket,SELECT_BY_TICKET); OpenPrice = OrderOpenPrice(); if(StopLoss > 0) LongStopLoss = OpenPrice - (StopLoss * RealPoint); if(TakeProfit > 0) LongTakeProfit = OpenPrice + (TakeProfit * RealPoint); if(LongStopLoss > 0 || LongTakeProfit > 0) { bool LongMod = OrderModify(LongTicket,OpenPrice,LongStopLoss, LongTakeProfit,0); } } |
|
|||
Ich hätte jetzt mal gesagt der Tiefste der letzten 3 ZIGZAG werte. Hast du das schon mal probiert?
---Leopold--- |
|
|||
Habs vielleicht falsch verstanden, aber wenn dein erster Code die Werte des Indikators holt, dann ist es doch kein Problem,
das letzte Tief zu ermitteln. |
|
|||
@Leopold Das Problem ist das es nicht immer der ZICKZAG[3] ist sondern immer unterschiedlich, wenn sich eine neue Linie gebildet hat gehen die "zahlen" ein schritt mit(ich hoffe man versteht was ich meine) manchmal ist es der ZIGZAG[2] manchmal ZIGZAG[1]. Wenn es nicht ganz verständlich ist kann ich mal ein Bild dazu machen.
@Next user Die frage ist ja wie? Es sind nicht immer die selben Werte also muss ich von den letzten Werten ermitteln welcher der "erste tiefere" ist und jetzt ist die frage wie mache ich das? |
|
|||
Zitat:
Aber vielleicht kannst du mal eine Zeichnung posten. ---Leopold--- |
|
|||
Ach okay ich hab verstanden das du meinst ich soll immer den ZIGZAG[3] Wert nehmen. Okay aber wie ermittel ich nun welcher der 3 Werte am niedrigsten ist?
|
|
|||
Da du die Werte in einen Array hast würde ich es damit versuchen:
ArrayMinimum(); https://docs.mql4.com/array/arrayminimum Hier bekommst du den Index zurück und schreibst einfach: Tief = ZIGZAG[Index]; //Index = Wert von ArrayMinimum(); ---Leopold--- |
|
|||
Ich hab jetzt was durch (Zufall) gesehen was mir doch mehr Probleme bereitet, und zwar folgendes: Bei 0 sieht man ja das sich ein neues HOCH gebildet hat (Roter Punkt) der ist aber nicht endgültig also verschiebt sich noch. So wie stelle ich es nun an das er denn Stoploss erst an Rot zieht wenn das nächste Tief gebildet wurde? (T) im Bild.
|
|
|||
Den Wert 0 nicht verwenden, erst mit 1 beginnen.
---Leopold--- |
|
|||
ungefähr so:
Code:
/Value int i = 0; double value = 0; int count = 0; while (count < 4) { value = iCustom(Symbol(),0,"Myindi",2,0,i); if (value > 0) { if (count > 0) ZIGZAG[count -1] = value; count++; } i++; } ---Leopold--- |
Lesezeichen |
Stichworte |
indikator, indikator tief, metatrader indikator, mql4, programmierung, programmierung metatrader, programmierung mql4, tief, tief indikator |
|
|