Kleinerbroker Posted February 26, 2011 Report Share Posted February 26, 2011 Ein Include, der mir einen Aufsatzpunkt "Pivot" im Verhältnis zur EMA der 200 Tage geben soll .Das Hauptprogramm übergibt den Wert der EMA und bekommt dafür den "Pivot" zurück . Dieser sollentweder mit "25" oder "75" enden , je nach Lage der EMA im 100´er Feld ...z Bsp 1,3978 soll 1,3925 zurückgeben,1,3945 aber 1,3875 . Anbei : Der Pivot ist für mich der Zielkurs für eine Stop-Order . Es wird der Double-Zahlenwert der EMA in einen String konvertiert, dann die für mich wichtigen letztenbeiden Nachkommastellen ausgeschnitten . Nun erfolgt Umwandlung in eine Integerzahl um in Folge dieFallunterscheidung 50 durchzuführen . Je nach Ergebnis wird der erste Teil des String herangezogen,dieser in eine Double verwandelt und schlussendlich je nach "Digits" 0,25 oder 0,0025 abgezogen/addiert . Guckst Du : //+-----------------------------------------------------------------------------------------------+ //| Ernten_Pivot.mqh | //| The code should be used for Ernten only | //+-----------------------------------------------------------------------------------------------+ //+-----------------------------------------------------------------------------------------------+ //| function : returns Pivot : shall be ´25´oder ´75´ ie 1.2325 or 1.2375 | //+-----------------------------------------------------------------------------------------------+ // | double calcPivot(double locLazy200) // | { // | string buf1 = DoubleToStr(locLazy200 ,Digits);// | int buf2 = StringLen(buf1) ;// | string buf3 = StringSubstr(buf1 ,buf2-2,2) ;//die letzten beiden Zahlen | int buf4=StrToInteger(buf3) ;// convert zu ganzer Zahl | //+-----------------------------------------------------------------------------------------------+ if (Digits == 2) // Pair mit 2 Stellen hinter Komma | { // | if (buf4 < 50 ) // und 200EMA im UNTEREN "100-Feld" | { // | double buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))-0.25 ;// | } // | else { // ist im OBEREN "100-Feld" | buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))+0.25 ;// | } // | Comment ( "\n","\n"," Digits= ",Digits,"\n"," 1= ", buf1 ,"\n"," 2= ",buf2,"\n"," 3= ", // | buf3,"\n"," 4= ",buf4,"\n"," Pivot = ",buf5) ;// | return (buf5) ;// = Pivot | } // | //+-----------------------------------------------------------------------------------------------+ if (Digits == 4) // ein Pair mit 4 Stellen hinter Komma | { // | if (buf4 < 50 ) // und 200EMA im unteren "100-Feld" | { // | buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))-0.0025 ;// | } // | else { // ist im OBEREN "100-Feld" | buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))+0.0025 ;// | } // | Comment ( "\n","\n"," Digits= ",Digits,"\n"," 1= ", buf1 ,"\n"," 2= ",buf2,"\n"," 3= ", // | buf3,"\n"," 4= ",buf4,"\n"," Pivot = ",buf5) ;// | return (buf5) ;// = Pivot | } // | } // | //------------------------------------------------------------------------------------------------+ Der Code unterscheidet Märkte mit 2 oder 4 Nachkomma-Stellen . Ich poste diesen Schnipsel , weil er anderen Anfängern behilflich sein möge . Und den "alten Hasen" wäre ich sehr und aufrichtig für Verbesserungsvorschläge aller Art zu Dank verbunden . KB PS.: Für den Interessierten habe ich meine beiden Comment-Zeilen im Code gelassen .Diese nutzte ich zum debuggen . In meinem Code entferne ich diese nun . Erntenist der EA an dem ich arbeite und der dem Goldhopper folgt . 1 Quote Link to comment Share on other sites More sharing options...
Vola Posted February 26, 2011 Report Share Posted February 26, 2011 Hmm, bin ja Progtechnisch hinterm Mond, kannst du mal einen Screen posten, der dein beschriebenes anhand eines Charts erklärt ? Ich verstehe so etwas visuell einfach besser. Quote Link to comment Share on other sites More sharing options...
Kleinerbroker Posted February 26, 2011 Author Report Share Posted February 26, 2011 Der Code soll den Wert 112,75 berechnen, wenn die 200EMA bei 113,49 steht . In meinem EA würde ich dort eine Stop Sell Order platzieren wollen .Das ist für mich der Hintergrund des kleinen Programmes . Aber ich stelle in diesem Falle (ausnahmsweise einmal) KEINEFrage sondern will informieren , wie ich dieses Problem gelöst habe . Einfach, weil mir auch schon soviel Hilfe zu Teilwurde . KB PS.: An anderer Stelle wurde der Code gerade hinterfragt, was zum Beispiel passieren würde, wenn der Markt 1 oder 3 oder 5 Digitshätte . Muss ich mal gucken , wenn es ein Thema werden sollte .... kenne im Moment keinen entsprechenden Markt . Quote Link to comment Share on other sites More sharing options...
Bull68 Posted February 26, 2011 Report Share Posted February 26, 2011 PS.: An anderer Stelle wurde der Code gerade hinterfragt, was zum Beispiel passieren würde, wenn der Markt 1 oder 3 oder 5 Digitshätte . Muss ich mal gucken , wenn es ein Thema werden sollte .... kenne im Moment keinen entsprechenden Markt . Hängt auch vom Broker ab, bei Alpari zb hat alles mit JPY 3 Digits. EURUSD hat 5.Das sind wahren Herausforderungen beim Programmieren, wenn das alles berücksichtigen willst. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.