Hey ragazzi,
Ho questo codice che ho scritto e nella mia mente funziona perfettamente, tuttavia la mia mente sembra sbagliata e non sa perché.
Così ho rintracciato il problema su una parte specifica, ma non ho ancora idea di cosa stia causando il fallimento.
Non ci sono errori di alcun signifio.
Ecco la parte in cui sembra non riuscire a:
Codice inserito se (Commerci # 91; 7, RowNumber2 # 93; == 1) {if (Chiedi lt; = Commerci # 91; 2, RowNumber2 # 93; Commerci # 91; 6, RowNumber # 93; == 0) { int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trade # 91; 4, RowNumber2 # 93 ;, 0, NULL, Commerci # 91; 1, RowNumber # 93 ;, 0, Blue); Trades # 91; 6, RowNumber # 93; = 1;/Stampa (--- MagicNumber =, MagicNumber, ---); ArrayCounter2 = 0; RowNumber2 = 0; }} else {ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1; }
Ecco il codice completo:
Codice inserito/ --------------------------------------------- --------------------- /| FTB.mq4 |/| |/| https://www.mql4.com |/ ----------------------------------------------- ------------------- #property copyright #property strict extern int MagicNumber = 10001; doppi extern = 0,1; extern double TrailingStop = 0; extern int Slippage = 3; extern double EntryGap = 0,00500; extern int BrokerDigits = 5; extern int AllowableDrawdown = 25; extern int MaxDrawdown = 610; extern bool MoneyManagement = false; doppia entrata; double StopLoss; double TakeProfit; double HalfCandleSize; doppio medio; doppio OpenCheck; doppio CloseCheck; double Trades # 91; 8 # 93; # 91; 20 # 93 ;;/ArrayNumber | Numero magico | Entrata | Stoploss | WaitCounter | ScadenzaTime | Inserito | Populated int SignalTime; int BarsOnChart = Bars; int IsNewCandle; int OrderError = 0; int RowNumber = 0; int RowNumber2 = 0; int ArrayCounter = 0; int ArrayCounter2 = 0;/ ----------------------------------------------- ------------------- /| Funzione di inizializzazione esperta |/ ----------------------------------------------- ------------------- int OnInit () {Commerci # 91; 0,0 # 93; = 1; Trades 91 #; 0,1 # 93; = 2; Trades 91 #; 0,2 # 93; = 3; Trades 91 #; 0,3 # 93; = 4; Trades 91 #; 0,4 # 93; = 5; Trades 91 #; 0,5 # 93; = 6; Trades 91 #; 0,6 # 93; = 7; Trades 91 #; 0,7 # 93; = 8; Trades 91 #; 0,8 # 93; = 9; Trades 91 #; 0,9 # 93; = 10; Trades 91 #; 0,10 # 93; = 11; Trades 91 #; 0,11 # 93; = 12; Trades 91 #; 0,12 # 93; = 13; Trades 91 #; 0,13 # 93; = 14; Trades 91 #; 0,14 # 93; = 15; Trades 91 #; 0,15 # 93; = 16; Trades 91 #; 0,16 # 93; = 17; Trades 91 #; 0,17 # 93; = 18; Trades 91 #; 0,18 # 93; = 19; Trades 91 #; 0,19 # 93; = 20; Stampare(-----------); Stampa (ArrayNumber =, Commerci # 91; 0, RowNumber # 93;); Stampa (MagicNumber =, Commerci # 91; 1, RowNumber # 93;); Stampa (Entry =, Commerces # 91; 2, RowNumber # 93;); Stampa (Stoploss =, Commerci # 91; 3, RowNumber # 93;); Stampa (WaitCounter =, Commerci # 91; 4, RowNumber # 93;); Stampa (ExpirationTime =, Commerci # 91; 5, RowNumber # 93;); Stampa (Inserito =, Commerci # 91; 6, Numero riga # 93;); Stampa (Populated =, Commerces # 91; 7, RowNumber # 93;); Stampare(-----------); ritorno (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Funzione di deinitializzazione esperta |/ ----------------------------------------------- ------------------- void OnDeinit (const int reason) {}/ ------------------ ------------------------------------------------ /| Funzione di tick esperto |/ ----------------------------------------------- ------------------- void OnTick () {if (BarsOnChart! = Bars)/Checking for new closedcandele {BarsOnChart = Bar; IsNewCandle = 1; } else {IsNewCandle = 0; } if (IsNewCandle == 1)/Verifica se una nuova candela ha chiuso {SignalTime = Hour () - 1; if ((SignalTime gt; 8) (SignalTime lt; 14) (High # 91; 1 # 93; gt; High # 91; 2 # 93;))/Controlla se la candela di segnalazione ha un valore più alto della candela prima ed è entro il periodo di tempo {HalfCandleSize = (Alto # 91; 1 # 93; - Basso # 91; 1 # 93;)2;/Calcola metà della dimensione della candela Middle = Low # 91; 1 # 93; HalfCandleSize;/Calcola il centro della candela OpenCheck = Middle - Open # 91; 1 # 93 ;;/Calcola la distanza tra open e middle CloseCheck = Middle - Close # 91; 1 # 93 ;;/Calcola la distanza tra close e middle se (OpenCheck gt; 0 CloseCheck gt; 0)/verifica se la candela si chiude nella metà inferiore {Entry = NormalizeDouble (Low # 91; 1 # 93; - 0,0001, 5);/Il motivo per OrderSend Error 130 è che la voce Entry è troppo vicina a Current Market Entry StopLoss = NormalizeDouble (High # 91; 1 # 93; 0,0005, 5); while (ArrayCounter lt; 20) {if (Commerces # 91; 7, RowNumber # 93; == 0) {Commerci # 91; 1, RowNumber # 93; = Numero magico; Trades # 91; 2, RowNumber # 93; = Entrata; Trades # 91; 3, RowNumber # 93; = StopLoss; Trades # 91; 4, RowNumber # 93; = 0; Trades # 91; 5, RowNumber # 93; = 0; Trades # 91; 6, RowNumber # 93; = 0; Trades # 91; 7, RowNumber # 93; = 1; MagicNumber = MagicNumber 1; Stampare(-----------); Stampa (ArrayNumber =, Commerci # 91; 0, RowNumber # 93;); Stampa (MagicNumber =, Commerci # 91; 1, RowNumber # 93;); Stampa (Entry =, Commerces # 91; 2, RowNumber # 93;); Stampa (Stoploss =, Commerci # 91; 3, RowNumber # 93;); Stampa (WaitCounter =, Commerci # 91; 4, RowNumber # 93;); Stampa (ExpirationTime =, Commerci # 91; 5, RowNumber # 93;); Stampa (Inserito =, Commerci # 91; 6, Numero riga # 93;); Stampa (Populated =, Commerces # 91; 7, RowNumber # 93;); Stampare(-----------); rompere; } else {ArrayCounter = ArrayCounter 1; RowNumber = RowNumber 1; }} ArrayCounter = 0; RowNumber = 0; }}} mentre (ArrayCounter2lt; 20) {if (Commerces # 91; 7, RowNumber2 # 93; == 1) {if (Chiedi lt; = Commerci # 91; 2, RowNumber2 # 93; Commerci # 91; 6, RowNumber # 93; == 0) {int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trade # 91; 4, RowNumber2 # 93 ;, 0, NULL, Commerci # 91; 1, RowNumber # 93 ;, 0, Blue); Trades # 91; 6, RowNumber # 93; = 1;/Stampa (--- MagicNumber =, MagicNumber, ---); ArrayCounter2 = 0; RowNumber2 = 0; }} else {ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1; }} if (ArrayCounter2 == 20) {ArrayCounter2 = 0; RowNumber2 = 0; }}
Se voi ragazzi poteste darmi la vostra saggezza che sarebbe molto apprezzata.
Grazie!