
定量取引戦略が進化するにつれて、ユーザーはポジション変更のリアルタイムプッシュ通知に対する要求がますます高まっています。たとえば、オンラインウェブログ、モバイルアプリ、WeChatなどはすべて、アカウントポジションの変更をプラットフォームに積極的に送信する必要があります。リアルタイムで。ブラウザ、携帯電話などこの目的のために、この記事では、Inventor Quantitative (FMZ.COM) の My language 戦略を使用して、モバイル アプリと WeChat へのポジションのリアルタイム プッシュを実現します。
この記事の完全なソース コードについては、https://www.fmz.com/strategy/305785 をクリックしてください。いくつかのコードを試してみることをお勧めします。
デモンストレーションのために、この記事では以前のウィリアムW%R取引戦略を参照します。戦略リンクアドレスはhttps://www.fmz.com/strategy/283024です。戦略ロジックはウィリアム値と移動で構成されています。平均。完全な戦略と戻りテスト構成については、このリンクをクリックして取得できます。以下はこの戦略のコードです。
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
FMZ.COMのMy言語はJavaScript言語をさらにカプセル化したものなので、定量分析の初心者がより良いスタートを切れるよう設計されています。My言語は簡潔な構文という特徴があり、単純な戦略ロジックを扱うことができますが、複雑なものには適していません。戦略は拡大されるでしょう。この目的のために、発明者の Quantized は My language に基づいた言語拡張機能を立ち上げました。次のコード例に示すように:
%%
// 这里面可以调用发明者量化的任何API
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
收盘价:C;
收盘价放大100倍:TEST(C);
上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
上記のコードにあるように、言語拡張機能によりMy言語とJavaScript言語の混在プログラミングが可能になります。具体的な説明については、ドキュメントリンクを参照してください: https://www.fmz.com/doc/2569#%E8%AF %AD%E8 %A8%80%E5%A2%9E%E5%BC%BA
で:
1. スコープオブジェクト スコープ オブジェクトを使用すると、プロパティを追加したり、プロパティに匿名関数を割り当てたりすることができます。 Mai 言語コード部分では、この属性によって参照される匿名関数を呼び出すことができます。
2、scope.get_locals(‘name’) この関数は、My 言語の変数を取得できるため、My 言語と JavaScript 言語間の相互作用を実現できます。
マイランゲージ戦略では、BKVOL 関数を使用して、買いシグナルのロット数、つまり現在のロングポジションを取得できます。 SKVOL関数は売りシグナルロット数、つまり現在のショートポジションを取得できます。次に、BKVOL から SKVOL を減算することで、現在の位置変更ステータスを計算できます。次のコードに示すように:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
%%
// 下面代码附加到任何My语言策略最后都可以实现仓位变化推送到手机App与微信
if (typeof(scope._tmp) !== 'number') {
scope._tmp = 0;
}
var pos = scope.get_locals('BKVOL') - scope.get_locals('SKVOL');
if (pos != scope._tmp) {
scope._tmp = pos;
Log('通知仓位变化:', scope.symbol, pos, '@');
}
%%
上記のコードでは、William W%R 取引戦略とポジション変更プッシュ機能を組み合わせ、取引戦略の注文配置とポジション変更のリアルタイム同期を実現し、モバイル アプリと WeChat にプッシュします。
次に、この機能を検証するためにリアルタイムトランザクションを実行します。リアルタイムトランザクションを作成するときは、OKEXスポットを選択し、通貨ペアをLTC_USDTに設定します(商品先物やデジタル通貨先物でもこの機能を使用でき、操作は同様です。 )
1. シグナルトリガー、ウェブ側ログ
2. シグナルトリガー、モバイルアプリメッセージプッシュ
3. シグナルトリガー、WeChat情報プッシュ

上記では、My Language の言語拡張モジュールによって開発されたメッセージ プッシュ モジュールと組み合わせたシンプルな My Language William W%R 取引戦略を使用して、モバイル アプリと WeChat へのポジション変更のリアルタイム プッシュを実現しています。このモジュール コードを任意の My language 戦略に添付して、モバイル アプリや WeChat に位置の変更をプッシュしたり、さまざまなシナリオに合わせてさまざまなプッシュ タイプを起動して、パーソナライズされたプッシュのニーズに対応したりできます。