Risposta

Creare funzioni in AlgoWizard

3 risposte

Trading mirato

Abbonato, bbp_partecipante, cliente, comunità, sq-ultimate, 7 risposte.

Visita il profilo

1 anno fa #288569

Salve,

Sono uno sviluppatore esperto di MQL5 e sto cercando di codificare il nostro EA in SQX per il back testing. Abbiamo già codificato con successo i nostri indicatori in .java utilizzando l'editor di codice, ma non vedo un'opzione per creare una strategia nell'editor di codice. Lo vedo correttamente? Non ci è consentito codificare strategie in Code Editor?

Se è così, come posso inserire le mie funzioni personalizzate utilizzando AlgoWizard, dato che non vedo le opzioni di cui ho bisogno nei menu a tendina fissi? Ho provato con le "Funzioni personalizzate", inserendo una funzione nel file .mq5 in "C:\StrategyQuantX138\user\extend\Code\MetaTrader5\CustomFunctions", ma non sembra riconoscerla per i test.

Per esempio, una delle funzioni più semplicistiche che abbiamo è quella di assegnare il prezzo medio per gli acquisti in una variabile, come potrei fare questo con AlgoWizard? oppure c'è un modo per codificare una strategia in Code Editor simile a come codifichiamo gli indicatori in .java?

Di seguito è riportata una funzione di esempio che vorrei codificare.

Vi ringrazio in anticipo per il vostro aiuto.

[code]double Media_Prezzo_Acquisto(ulong magicNumber,string symbol,int s){

double Prezzo_Totale = 0;
double Total_Size = 0;
double bAverage_Price;

per(int i = PositionsTotal() - 1; i >= 0; i-){
string CurrencyPair = PositionGetSymbol(i);
double PositionOpenPrice = PositionGetDouble(POSITION_PRICE_OPEN);
double PositionSize = PositionGetDouble(POSITION_VOLUME);
long PositionDirection = PositionGetInteger(POSITION_TYPE);
long PositionMagicNumber = PositionGetInteger(POSITION_MAGIC);

if (symbol == CurrencyPair && PositionDirection == POSITION_TYPE_BUY && PositionMagicNumber == magicNumber){
Total_Size += PositionSize;
Total_Price += PositionOpenPrice * PositionSize;
}
}

if (Total_Size != 0) {
bAverage_Price = Total_Price / Total_Size;
} else {

bPrezzo_medio = 0,0;
}

 

if(inpCommissionAccount==false){ritornare bAverage_Price;}
else{restituisce bAverage_Price+(sym[s].CommPointsToAdd*SymbolPoint(symbol));}
}[/codice]

 

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

1 anno fa #288574

Ciao,

è corretto. Non è possibile utilizzare CodeEditor per creare direttamente strategie.

Le CustomFunctions possono essere utilizzate solo in simulazione/reale, non in backtesting. Non è possibile ottenere semplicemente il prezzo medio. Nella modalità di copertura MT4/5 ogni posizione viene trattata come indipendente. Non è quindi possibile fare riferimento direttamente al "prezzo medio della posizione".

0

Trading mirato

Abbonato, bbp_partecipante, cliente, comunità, sq-ultimate, 7 risposte.

Visita il profilo

1 anno fa #288582

Ok, grazie per la risposta.

C'è un modo per scrivere qualcosa di personalizzato in AlgoWizard o siamo limitati ai dropdown fissi?

1

Bartosz

Abbonato, bbp_partecipante, cliente, comunità, sq-ultimate, 1 risposte.

Visita il profilo

1 anno fa #289168

1. Sono anche interessato all'uso della funzione personalizzata CUST. La descrizione dice che possiamo usarla per inserire il nostro codice MQL personalizzato, ma non dice che non possiamo usarla nel retester ecc. Quindi, qual è l'uso previsto?

0

Stai visualizzando 3 risposte - da 1 a 3 (di 3 totali)