|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Hilfe bei nachkomma Programieren
Hallo,
ich habe ein Indikator der auch super bei 5 Digits(Nachkommerstellen) funktioniert, jetzt bin ich mit einem Standard Konto am testen wo es allerdings nur 4 nachkommastellen gibt und ich finde keine Lösung wie ich das in den Indikator einbaue bzw. verändere! Vielleicht kann mir jemand einen tipp geben oder hat eine einfache Lösung für das Problem! Hier der entsprechende Code: //+------------------------------------------------------------------+ //| Linesetter | //| By Björn Boumanns | //+------------------------------------------------------------------+ #property copyright "Björn Boumanns" #property link "http://Tenchinhan.de" #property indicator_chart_window extern int GridSpace=50; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- double shift=0; double HighPrice=0; double LowPrice=0; double Divisor = 0.1/Point; HighPrice = MathRound(High[Highest(NULL,0,2, Bars - 2, 2)] * Divisor); //SL = High[Highest(MODE_HIGH, SLLookback, SLLookback)]; LowPrice = MathRound(Low[Lowest(NULL,0,1, Bars - 1, 2)] * Divisor); for(shift=LowPrice;shift<=HighPrice;shift++) { ObjectDelete("Grid"+shift); } //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); double I=0; double HighPrice=0; double LowPrice=0; int GridS=0; int SL=0; //---- double Divisor = 0.1/Point; HighPrice = MathRound(High[Highest(NULL,0,MODE_HIGH, Bars - 2, 2)] * Divisor); //SL = High[Highest(MODE_HIGH, SLLookback, SLLookback)]; LowPrice = MathRound(Low[Lowest(NULL,0,MODE_LOW, Bars - 1, 2)] * Divisor); GridS = GridSpace / 12.5; for(I=LowPrice;I<=HighPrice;I++) { //Print("mod(I, GridSpace): " + MathMod(I, GridS) + " I= " + I); //Print(LowPrice + " " + HighPrice); if (MathMod(I, GridS) == 0) { if (ObjectFind("Grid"+I) != 0) { ObjectCreate("Grid"+I, OBJ_HLINE, 0.1, Time[1], I/Divisor); ObjectSet("Grid"+I, OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Grid"+I, OBJPROP_COLOR, MediumSeaOrange); } //MoveObject(I + "Grid", OBJ_HLINE, Time[Bars - 2], I/1000, Time[1], I/1000, MediumSeaOrange, 1, STYLE_SOLID); } } //---- return(0); } //+------------------------------------------------------------------+ MfG Björn |
|
|||
Hallo
danke für deine Antwort aber wenn ich das richtig verstanden habe, soll der erweiterte Code dafür sein das er in 4 bzw. 5 Digit läuft! Mein Problem ist aber nicht das er nicht Lauft , das Problem ist das er gar keine nach Komma Einstellungen an nimmt! Bei 5 Digit kein Problem da kann ich z.b. für 12,5 Pips einfach 125 in den Einstellungen eingeben bei 4 Digit müsste es allerdings 12,5 heißen aber das will einfach nicht klappen! MfG Björn |
|
||||
ändere extern int GridSpace=50; in
extern double GridSpace=50; dann kannst' Nachkommastellen eingeben bis der Arzt kommt |
|
|||
@fxdaytrader
Super Danke klappt jetzt wie es soll Noch 1-2 Jahre dann Lache ich über solche Probleme dann Kann ich auch Programieren ohne das mir schon der Kopf Qualmt wenn ich nur den Code seh |
|
||||
Das kommt dabei heraus, wenn man nur die Fehlerbeschreibung liest und den Rest überfliegt.
Allerdings bin ich etwas irritiert, das die "int"-Funktion in 5-Digit funktionieren soll und bei der 4-Digit nicht !! |
|
|||
@crashbull
Ich hatte mich vielleicht etwas falsch ausgedrückt gelaufen hat der Indikator auf beiden egal ob 4 oder5 digit mein Problem war nur das bei 5 digit eine Stelle mehr ist das heißt für eine Linie bei 12,5 muss ich 125 angeben also kein Problem aber bei 4 digit muss ich 12,5 angeben und das wollte der Indikator nicht das Macht er jetzt mit der Änderung in Double! Sorry die schreibst benutze grad das Handy! Mit freundlichen Grüßen Björn |
|
|||
Hallo alle zusammen,
ich stehe jetzt vor dem nächsten Problem dank der Änderung von ini zu double kann ich jetzt bei den Einstellungen auch Nachkomma Stellen eingeben, aber aus irgendeinem Grund macht er bei z.b. 12,5(4 Digit) bzw. 125 (5 Digit) trotzdem nur 12er bzw. 120er Schritte! Ich hoffe ihr könnt mit dabei weiter helfen! MfG Björn |
|
||||
Dies hängt wahrscheinlich mit den Digits zusammen. In einer 12m Garage kannst du kein 12,5m langes Gefährt unterbringen. Mit den 12,5 versuchst du aus dem 4-Digit ein gewaltsames 5-Digit zu machen. Dieses, Komma irgendwas, kann zwar eingegeben werden, fällt aber später fort, da es nicht akzeptiert wird.
Zum 5-Digit-Fall vermute ich, das es im EA eine Verwirrung in den Berechnungen mit 5 und 4-Digit gibt, welches aber aus dem vorhandenem Code nicht ersichtbar ist. Auch hier wären " init und Double" Anweisungen genau zu untersuchen. |
Lesezeichen |
Stichworte |
4 digits, 5 digits, digits, indikator, metatarder indikator, mql4, nachkommastellen, programmierung, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|