Documentazione

Applicazioni

Ultimo aggiornamento il 18. 11. 2021 da clonex / Ivan Hudec

Esempio - Rapporto tra margine di negoziazione

L'edge ratio ci dice quanto era alto il potenziale di una particolare operazione. Il calcolo è dato dal rapporto tra MFE normalizzato e MAE normalizzato. Abbiamo già parlato dell'Edge Ratio in questo articolo. articolo. Nel seguente tutorial vi mostreremo come creare una nuova colonna di operazioni che ci permetterà di analizzare l'Edge Ratio di ogni operazione.

Passo 1 - Creare una nuova colonna Commercio

 

Aprite CodeEditor, fate clic su Crea nuovo e scegliete l'opzione Elenco delle colonne di compravendita. Rapporto di bordoTrade.

Questo creerà un nuovo snippet Rapporto di bordoTrade.java in cartella Utente/Snippet/SQ/Colonne/Tradizioni

Impostiamo Decimal2 nel costruttore per ottenere il valore con due cifre decimali.

 

public class EdgeRatioTrade extends TradelistColumn {
    
    public EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2);
        setWidth(80);
    }


Passo 2 - Implementare il metodo getValue()

 

Questo metodo ha come parametro Ordine order è una classe che memorizza i valori di ciascun ordine della strategia. Allo stesso tempo, questa classe contiene metodi che consentono di ordinare o identificare l'ordine. In background, StrategyQuant X chiama il metodo getValue(Order order) e produce un valore per ogni ordine della strategia.

 

    @Override
    public Object getValue(Order order) {
    
    double mae = order.PipsMAE; //ottenere il MAE dell'ordine in pips
    double mfe = order.PipsMFE; //ottenere il MAE dell'ordine in pips
    double atrOnOpen = order.ATROnOpen; //ottenere l'ATR dell'ordine in pips

    double normMAE = mae/atrOnOpen; // ottiene il MAE normalizzato
    double normMFE = mfe/atrOnOpen; // ottiene la MFE normalizzata

    double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede l'eccezione di divisione zero nulla

    restituire eRTrade;

}

 

Suggerimento:

Se si desidera eseguire il debug del codice di questo snippet, è sufficiente aggiungere la funzione fdebug("","") al codice. Il log in cui vengono scritti i valori si trova nella cartella user/Log/StrategyQuant.

 

@Override
    public Object getValue(Order order) {
        
        double mae = order.PipsMAE; //ottenere il MAE dell'ordine in pips
        double mfe = order.PipsMFE; //ottenere il MAE dell'ordine in pips
        double atrOnOpen = order.ATROnOpen; //ottenere l'ATR dell'ordine in pips

        double normMAE = mae/atrOnOpen; // ottiene il MAE normalizzato
        double normMFE = mfe/atrOnOpen; // ottiene la MFE normalizzata

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede l'eccezione di divisione zero nulla

        /// fdebug
        fdebug("EdgeRatioTrade---> "," order.Ticket: "+order.Ticket+" order.PipsMAE: "+order.PipsMAE+" order.ATROnOpen: "+order.ATROnOpen);

        restituire eRTrade;

    }

 

Passo 3 - Aggiunta di uno snippet all'elenco dei mestieri

 

Dopo aver compilato lo snippet e riavviato StrategyQuantX, è possibile aggiungere lo snippet all'elenco delle operazioni.

 

 

Codice commentato completo dello snippet

 

pacchetto SQ.Columns.Trades;

importare com.strategyquant.lib.*;
importare com.strategyquant.datalib.*;
importare com.strategyquant.tradinglib.*;

public class EdgeRatioTrade extends TradelistColumn {
    
    public EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2);
        setWidth(80);
    }
    
    @Override
    public Object getValue(Order order) {
        
        double mae = order.PipsMAE; //ottenere il MAE dell'ordine in pips
        double mfe = order.PipsMFE; //ottenere il MAE dell'ordine in pips
        double atrOnOpen = order.ATROnOpen; //ottenere l'ATR dell'ordine in pips

        double normMAE = mae/atrOnOpen; // ottiene il MAE normalizzato
        double normMFE = mfe/atrOnOpen; // ottiene la MFE normalizzata

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede l'eccezione di divisione zero nulla

        restituire eRTrade;

    }

}

 

Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile

Abbonarsi
Notificami
1 Commento
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti
Emmanuel
23. 12. 2021 12:29

Molto bene!!!