Ich versuche einen EA zu programmieren, der auf meiner eigenen Strategie basiert, mit Hilfe von Code aus einigen anderen EAs und Indis. aber jetzt in einer Sache stecken.
<entfernt>
Bitte verwenden Sie die SRC-Schaltfläche, um den Code zu posten. . .
extern string LotsProgression="0.1;0.1;0.2;0.3 ... double lots[]; // [0]=0.1 [1]=0.1 [2]=0.2 [3]=0.3 [34]=661.1 int plen; // 35 int init(){ ... }
Die Sache, die Sie erwähnt ist ok. Problem ist in den Rest des Codes. Ich bekomme zwei Fehler (nur im neuen Meta-Editor).
'init' - function can be declared only in the global scope and 'init' - function already defined and has body
Ja, ich habe das verstanden und korrigiert. Jetzt bekommen Fehler in timeframe Code.
//--- EA PARAMETERS extern int EA_TF=240; extern bool Forced_TF=True; bool TF; if(Forced_TF != True) TF = EA_TF; //These two lines i think, have error. else TF = Period(); //New metaeditor is not accepting "TF = EA_TF;" from above line.
Wenn Forced_TF wahr ist, dann EA sollte Handel und sollte Signale von genannten Zeitrahmen nur erhalten, auch wenn aktive Chart (auf die ich EA platzieren) in anderen Zeitrahmen geöffnet ist. Wenn der Wert false, dann sollte es auf jedem timeframe arbeiten.
Ja, ich habe das verstanden und korrigiert. Jetzt bekommen Fehler in timeframe Code.
Wenn Forced_TF wahr ist, dann EA sollte Handel und sollte Signale von genannten Zeitrahmen nur erhalten, auch wenn aktive Chart (auf die ich EA platzieren) in anderen Zeitrahmen geöffnet ist. Wenn Wert false, dann sollte es auf jedem Zeitrahmen arbeiten.
Sie haben TF als bool . .. aber Sie versuchen, es auf eine int zu setzen ... versuchen Sie dies ...
//--- EA PARAMETERS extern int EA_TF=240; extern bool Forced_TF=True; int TF; if(!Forced_TF) TF = EA_TF; //These two lines i think, have error. else TF = Period(); //New metaeditor is not accepting "TF = EA_TF;" from above line.
@RaptorUK Ich habe Sie. und wieder alles ok mit altem Editor, aber neuer Editor gibt immer noch eine Warnung, zitiert im Code nach Fehlerzeile,
//+------------------------------------------------------------------+ //| 01Multi_EA.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property version "1.00" #property strict //--- input parameters input int EA_TF=60; input bool Forced_TF=True; input int MagicNumber=12345; input int FastMA_Period=5; input int FastMA_Shift=0; input int FastMA_Method=1; input int FastMA_Price=0; input int SlowMA_Period=34; input int SlowMA_Shift=0; input int SlowMA_Method=1; input int SlowMA_Price=0; input string LotsProgression="0.01;0.02;0.03;0.04;0.05;0.06;0.07;0.08;0.09;0.10;0.11;0.12;0.13;0.14;0.15;0.16;0.17;0.18;0.19;0.20"; input bool NewCycle=True; input int Limit_TP=50; input bool Use_TP=False; input int Limit_SL=50; input bool Use_SL=False; input int MaxSlippage=3; input int OrderTries=10; int TF, Plen; double TP, SL, pips2dbl, pips2point, pipValue, Slippage, Lots[]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //---- if(Forced_TF != True) TF = EA_TF; else TF = Period(); int i,j,k; string ls; while (true) { j=StringFind(LotsProgression,";",i); if(j>0) { ls=StringSubstr(LotsProgression,i,j-i); // <<<<<"possible use of uninitialized variable 'i' 01Multi_EA.mq4 46 38">>>>> i=j+1; k++; ArrayResize(Lots,k); Lots[k-1]=StrToDouble(ls); } else { ls=StringSubstr(LotsProgression,i); k++; ArrayResize(Lots,k); Lots[k-1]=StrToDouble(ls); break; } } Comment("Copyright © 2004, MetaQuotes Software Corp."); if (Digits == 5 || Digits == 3) { pips2dbl = Point*10; pips2point = 10; pipValue = (MarketInfo(Symbol(),MODE_TICKVALUE))*10; } else { pips2dbl = Point; pips2point = 1; pipValue = (MarketInfo(Symbol(),MODE_TICKVALUE))*1; } Slippage = pips2dbl*MaxSlippage; TP = pips2dbl*Limit_TP; SL = pips2dbl*Limit_SL; //---- return(INIT_SUCCEEDED); }
@WHRoeder Habe den ganzen Code eingefügt.
@RaptorUK Ich habe Sie. und wieder alles ok mit altem Editor, aber neuer Editor gibt immer noch eine Warnung, zitiert im Code nach Fehlerzeile,
@WHRoeder Habe den ganzen Code eingefügt.
Es ist kein Fehler, es ist eine Warnung ... um die Warnung loszuwerden, initialisieren Sie die Variable, anstatt sie nur zu deklarieren. In mql4 wurde eine Variable beim Deklarieren auch initialisiert, in mql4.5 muss man die Variable explizit initialisieren, wenn man das will...
int i = 0, j, k; // i initialised to 0
pipValue = (MarketInfo(Symbol(),MODE_TICKVALUE))*10;Verwenden Sie tickvalue nicht allein https://www.mql5.com/en/forum/133792/page3#512466
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich versuche, einen EA auf der Grundlage meiner eigenen Strategie zu codieren, mit Hilfe von Code aus einigen anderen EAs und indis. aber jetzt in einer Sache stecken.
Ich bin nicht in der Lage, diese Logik zu verstehen oder was es eigentlich ist.
PS: Ein Freund mochte meine Strategie und erstellte diesen EA. Aber ich habe beides verloren (den EA und den Kontakt zu diesem Programmierer), so dass ich jetzt versuche, meine grundlegenden Programmierkenntnisse zu testen, da ich diese Strategie unbedingt wieder programmieren möchte.