ドキュメント
アプリケーション
最終更新日:2021年11月18日(作成者:clonex / Ivan Hudec)
例 – トレードエッジ比率
ページのコンテンツ
エッジ比は、特定のトレードにおけるポテンシャルがどれほど高かったかを示します。計算式は、正規化されたMFEと正規化されたMAEの比率です。私たちはすでにエッジ比についてこの記事で書きました 記事. 以下のチュートリアルでは、各トレードのエッジ比率(Edge Ratio)を分析できるようにするための新しいトレード列を作成する方法を紹介します。.
ステップ 1 – 新しい「Trade」列を作成する
コードエディターを開き、「新規作成」をクリックして、取引リスト(List of trades)の列オプションを選択します- 名前を付けます エッジ比トレード.
これにより、新しいスニペットが作成されます エッジ比トレード.java フォルダ内 ユーザー/スニペット/SQ/カラム/トレード
小数点以下2桁の値を取得するために、コンストラクターでDecimal2を設定しましょう。.
public class EdgeRatioTrade extends TradelistColumn {
public EdgeRatioTrade() {
super("EdgeRatioTrade", Decimal2);
setWidth(80);
}
ステップ2 – getValue() メソッドを実装する
このメソッドはパラメータを持っています 注文 `order` は、ストラテジの各注文の値を格納するクラスです。同時に、このクラスには、注文を並べ替えたり識別したりするためのメソッドが含まれています。バックグラウンドでは、StrategyQuant X が `getValue(Order order)` メソッドを呼び出し、ストラテジ内の各注文に対する値を生成します。.
@Override
public Object getValue(Order order) {
double mae = order.PipsMAE; // 注文のMAEをpips単位で取得
double mfe = order.PipsMFE; // 注文のMFEをpips単位で取得
double atrOnOpen = order.ATROnOpen; // 注文のATRをpips単位で取得
double normMAE = mae/atrOnOpen; // 正規化されたMAEを取得
double normMFE = mfe/atrOnOpen; // 正規化されたMFEを取得
double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivideはゼロ除算例外を防ぎます
return eRTrade;
}
チップ:
コードをデバッグしたい場合は、このスニペットにある function fdebug(“”, ””) をコードに追加してください。値が記録されるログは、user/Log/StrategyQuant フォルダ内にあります。.
@Override
public Object getValue(Order order) {
double mae = order.PipsMAE; // 注文のMAEをpips単位で取得
double mfe = order.PipsMFE; // 注文のMFEをpips単位で取得
double atrOnOpen = order.ATROnOpen; // 注文のATRをpips単位で取得
double normMAE = mae/atrOnOpen; // 正規化されたMAEを取得
double normMFE = mfe/atrOnOpen; // 正規化されたMFEを取得
double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivideはゼロ除算例外を防ぎます
/// fdebug
fdebug("EdgeRatioTrade---> "," order.Ticket: "+order.Ticket+" order.PipsMAE: "+order.PipsMAE+" order.ATROnOpen: "+order.ATROnOpen);
return eRTrade;
}
ステップ3 – 取引リストへのスニペットの追加
スニペットをコンパイルし、StrategyQuantXを再起動した後、そのスニペットをトレードリストに追加できます。.
このコードスニペットのコメント付き完全版
package SQ.Columns.Trades;
import com.strategyquant.lib.*;
import com.strategyquant.datalib.*;
import 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; // 注文のMAEをpips単位で取得
double mfe = order.PipsMFE; // 注文のMFEをpips単位で取得
double atrOnOpen = order.ATROnOpen; // 注文のATRをpips単位で取得
double normMAE = mae/atrOnOpen; // 正規化されたMAEを取得
double normMFE = mfe/atrOnOpen; // 正規化されたMFEを取得
double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivideはゼロ除算例外を防ぎます
return eRTrade;
}
}
この記事は参考になりましたか? この記事は役に立った この記事は役に立たなかった


非常に良い!!!