Salve a tutti,
sto iniziando ora con il trading automatico e mi sto documentando da mesi con libri, articoli, video ecc.
Quando ho raggiunto un pò di confidenza con il codice ho provato a scrivere il mio primo EA. Tuttavia, non riesco a farlo funzionare. Il problema è che non mi emette gli ordini, quando faccio il back test non mi escono le freccette rosse e verdi per capirci e se lo metto su grafico live mi esce la finestra di avviso che non è stato possibile emettere l'ordine.
Ho modificato e rivisto il codice tante volte ma non riesco a venirne a capo.
Vi allelo il codice, qualcuno potrebbe almeno indirizzarmi su dove sta il problema?
Grazie!
Salve a tutti,
sto iniziando ora con il trading automatico e mi sto documentando da mesi con libri, articoli, video ecc.
Quando ho raggiunto un pò di confidenza con il codice ho provato a scrivere il mio primo EA. Tuttavia, non riesco a farlo funzionare. Il problema è che non mi emette gli ordini, quando faccio il back test non mi escono le freccette rosse e verdi per capirci e se lo metto su grafico live mi esce la finestra di avviso che non è stato possibile emettere l'ordine.
Ho modificato e rivisto il codice tante volte ma non riesco a venirne a capo.
Vi allelo il codice, qualcuno potrebbe almeno indirizzarmi su dove sta il problema?
Grazie!
C'e' almeno un errore che il compilatore sicuramente ti segnala ma probabilmente non l'hai notato. Se non compila (a causa dell'errore) allora non produce un eseguibile e quindi non può testare niente.
Dovresti sostituire le linee nello screenshot
con
if(FullConditionBUY == true ) { if (Buy_opened) ...
Ciao a tutti,
sto provando a cimentarmi nella creazione di un algoritmo, ma seppur non ho errori di compilazione, una fvolta che faccio partire il backtesting ho il seguente errore:
2023.02.05 10:38:01.985 2023.01.05 16:07:19 failed exchange sell 1K at market sl: -0 tp: 0 [Invalid request]
Potreste aiutarmi a capire dove sbaglio?
Di seguito il codice che ho costruito:
//+------------------------------------------------------------------+ //| test4.mq5 | //| Copyright 2023, Bobone | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2023, Bobone" #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ #include <Trade/Trade.mqh> int Ask; int Bid; int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { // Calcolare le medie mobili double ma14_1h = iMA(NULL, PERIOD_H1, 14, 0, MODE_SMA, PRICE_CLOSE); double ma28_1h = iMA(NULL, PERIOD_H1, 28, 0, MODE_SMA, PRICE_CLOSE); double ma56_1h = iMA(NULL, PERIOD_H1, 56, 0, MODE_SMA, PRICE_CLOSE); double ma14_1d = iMA(NULL, PERIOD_D1, 14, 0, MODE_SMA, PRICE_CLOSE); double ma28_1d = iMA(NULL, PERIOD_D1, 28, 0, MODE_SMA, PRICE_CLOSE); double ma56_1d = iMA(NULL, PERIOD_D1, 56, 0, MODE_SMA, PRICE_CLOSE); // Verificare se c'è un ordine aperto if (OrdersTotal() == 0) { // Condizione per aprire un ordine d'acquisto if (ma14_1h > ma28_1h && ma28_1h > ma56_1h && ma14_1d > ma28_1d && ma28_1d > ma56_1d) { if (Ask >= ma56_1h || Ask >= ma56_1d) { // Variabili per l'ordine d'acquisto double deposit = AccountInfoDouble(ACCOUNT_BALANCE) + AccountInfoDouble(ACCOUNT_PROFIT); double investment = NormalizeDouble(deposit * 0.1, 2);; double takeProfit = 30; double stopLoss = 40; // Creare un ordine d'acquisto MqlTradeRequest request; request.type = ORDER_TYPE_BUY; request.price = Ask; request.sl = Ask - stopLoss * Point(); request.tp = Ask + takeProfit * Point(); request.volume = investment; MqlTradeResult result; if (OrderSend(request, result)) { int ticket = (int)result.order; Print("Ordine d'acquisto aperto con successo. Ticket: ", ticket); } } } // Condizione per aprire un ordine di vendita if (ma14_1h < ma28_1h && ma28_1h < ma56_1h && ma14_1d < ma28_1d && ma28_1d < ma56_1d) { if (Bid <= ma56_1h || Bid <= ma56_1d) { // Variabili per l'ordine di vendita double deposit = AccountInfoDouble(ACCOUNT_BALANCE) + AccountInfoDouble(ACCOUNT_PROFIT); double investment = NormalizeDouble(deposit * 0.1, 2); double takeProfit = 30; double stopLoss = 40; // Creare un ordine di vendita MqlTradeRequest request; request.type = ORDER_TYPE_SELL; request.price = Bid; request.sl = Bid - stopLoss * Point(); request.tp = Bid + takeProfit * Point(); request.volume = investment; MqlTradeResult result; if (OrderSend(request, result)) { int ticket = (int)result.order; Print("Ordine di vendita aperto con successo. Ticket: ", ticket); } } } } }
- 2023.02.05
- www.mql5.com
Ciao a tutti,
sto provando a cimentarmi nella creazione di un algoritmo, ma seppur non ho errori di compilazione, una fvolta che faccio partire il backtesting ho il seguente errore:
2023.02.05 10:38:01.985 2023.01.05 16:07:19 failed exchange sell 1K at market sl: -0 tp: 0 [Invalid request]
Potreste aiutarmi a capire dove sbaglio?
Di seguito il codice che ho costruito:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Salve a tutti,
sto iniziando ora con il trading automatico e mi sto documentando da mesi con libri, articoli, video ecc.
Quando ho raggiunto un pò di confidenza con il codice ho provato a scrivere il mio primo EA. Tuttavia, non riesco a farlo funzionare. Il problema è che non mi emette gli ordini, quando faccio il back test non mi escono le freccette rosse e verdi per capirci e se lo metto su grafico live mi esce la finestra di avviso che non è stato possibile emettere l'ordine.
Ho modificato e rivisto il codice tante volte ma non riesco a venirne a capo.
Vi allelo il codice, qualcuno potrebbe almeno indirizzarmi su dove sta il problema?
Grazie!