Documentazione
Applicazioni
Ultimo aggiornamento il 18. 11. 2021 da clonex / Ivan Hudec
Esempio - Rapporto tra margine di negoziazione
Contenuto della pagina
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
Molto bene!!!