Type/to search
8
Follow
1364
Followers
取引戦略を構築するための視覚化モジュール - 初見
Original
Created 2019-07-08 09:23:59  Updated 2024-12-23 17:57:33
 7
 8305

img

取引戦略を構築するための視覚化モジュール - 初見

ビジュアルプログラミングは、定量取引の分野においても、常にソフトウェアツール開発者にとって望ましい目標でした。
「見た通りのものが得られる」という視覚化のアプローチにより、プログラミング開発の技術的なハードルが大幅に下がるからです。
ユーザーは、退屈なコーディングを大量に処理する必要がなくなりました。頭脳、想像力、論理的思考力を活用して、ビジネスそのものに集中するだけで済みます。
自分の希望するプログラムが実現できるなんてすごいですね!

それでは、一緒に定量取引戦略のビジュアルプログラミングの分野に参入しましょう。

  • 量子化ビジュアルプログラミングの最初の発明者

    https://www.fmz.com にログインした後、アカウントを登録し (すでに登録している場合は直接ログインします)、[コントロール センター] -> [ポリシー ライブラリ] -> [新しいポリシー] をクリックします。

    img

    初期の視覚化戦略を見ることができます。
    デフォルトで設定された取引所 (バックテストまたはロボットに追加された最初の取引所オブジェクト) のアカウント資産情報のみを出力します。
    (下図参照)

    img

    視覚化の使用方法を学習する前に、まず視覚化の設計概念を理解する必要があります。

    • 1. スプライシング

      注意深く観察すると、すべてのモジュールにほぞ穴 (凹面) とほぞ穴 (凸面) があり、モジュールを「接続」および「連結」できることがわかります。
      2 つのモジュールによって表される機能コードを接続できる場合、2 つのモジュールのほぞ穴とほぞ継ぎを近づけると、それらのコードがスナップして結合されます。

      img

    • 2. モジュールの設定と調整

      一部のモジュールには特別な設定があります。たとえば、次のようになります。

      img

      左側の「プロジェクト」モジュールを「結合」モジュールにドラッグすると、ほぞ穴とほぞ穴の位置を追加して、テキストを接合する位置を追加できます。
      このように、小さな歯車をクリックすることで、モジュールの調整や設定を行うことができます。

    • 3. モジュールのデフォルトの入力パラメータ

      一部のモジュールでは、値や文字列などの入力パラメータが必要です。
      モジュールの入力パラメータとして変数を追加しない場合、モジュールはデフォルトの入力パラメータに従って実行されます。

      img
      このような平方根を求める計算モジュールは、このモジュールの計算結果を出力します。
      img
      ご覧のとおり、入力パラメータが欠落している場合は、デフォルト値 9 が入力パラメータとして使用され、9 の平方根が計算されます。
      img

      もちろん、可変モジュールを入力パラメータとして使用する場合は、可変モジュールをほぞ穴とほぞ穴(凹部)の位置に直接接続できます。
      img

    • 4. 操作

      モジュールはマウスの左ボタンでクリックしてドラッグできます。
      モジュールは、コードやテキストをコピーして貼り付けるのと同じくらい簡単に、Ctrl + C を使用してコピーし、Ctrl + V を使用して貼り付けることができます。
      マウスホイールを使用して操作領域を拡大または縮小することができ、すべてのモジュールが拡大または縮小されます。
      操作エリア内の空白部分をクリックしたままドラッグすると、操作エリアが移動します。
      右側のゴミ箱には、最近削除されたモジュールが記録されます。
      最も重要なことは、モジュール戦略を組み立てた後、「保存」をクリックすることを忘れないことです。

  • 可視化ツールモジュールの紹介

    ビジュアル編集領域の左側には多くのモジュール カテゴリがあり、各カテゴリには利用可能なビジュアル モジュールが多数あることがわかります。

    img カテゴリーは全部で11個あります。

    • ツールモジュール:

      img


      • 1. 出力情報:

        このモジュールは通常、以下に示すようにテキスト モジュールと組み合わせて使用​​されます。
        img
        テキスト クラス モジュールに文字列を入力すると、「出力情報」モジュールを実行するときに、テキスト モジュール内の文字列の内容が印刷されます。
        img
        バックテスト:
        img

        JavaScript 言語コードと同様:

        function main(){ Log("你好,可视化编程!") }

      • 2. WeChatプッシュ:

        このモジュールは、「情報の出力」と同じように見えますが、情報を出力し、現在のアカウントにバインドされている WeChat アカウントにプッシュする点が異なります。
        img
        img

        JavaScript 言語コードと同様:

        function main () { Log("微信推送!@") }

      • 3. 例外をスローする

        例外スローモジュールを使用すると、プログラムはエラーを発生させ、プログラムの実行を停止できます (例外処理コードを記述する必要はありません)。
        img

        これは、メイン関数内で throw "出力する文字列" 関数が直接実行される JavaScript 戦略に似ています。

        function main () { throw "第一句就抛出异常,让程序停止!" }

        バックテスト結果:
        img
        これは通常、デバッグ中に頻繁に使用されます。たとえば、特定の条件下でプログラムを停止し、その時点でいくつかのデータを出力して簡単に観察できるようにする場合などです。
        または、問題が発生する可能性のあるコード フローに例外をスローするモジュールを配置して、プログラムがエラーを報告し、エラーを検出できるようにすることもできます。


      • 4. 冬眠

        休止モジュール
        img
        JavaScript 戦略の場合と同様に:

        function main () { Sleep(1000 * 5) }

        休止モジュールをテストします。
        img
        バックテスト結果:
        img


      • 5. 印刷収入

        img

        このモジュールは、Inventor Quantitative Trading Platform API の LogProfit 関数に似ており、利益ログを印刷し、入力パラメータに基づいて利益曲線を自動的に描画します。

        例えば:
        img
        バックテストの実行は以下の通りです。
        img
        対応する JavaScript ポリシー コードは次のとおりです。

        function main () { LogProfit(1) Sleep(1000 * 5) LogProfit(2) Sleep(1000 * 5) LogProfit(3) Sleep(1000 * 5) LogProfit(2) Sleep(1000 * 5) LogProfit(5) }

        収益情報を出力したい任意の場所に接合できます。


      • 6. ループ

        img
        ループ モジュールは、一連の結合されたモジュールの組み合わせをラップし、このモジュールの組み合わせをループ内で実行することができます。

        テスト:
        img
        バックテスト結果:
        img
        ループ モジュールが Print Profit と Sleep で構成されるモジュールの組み合わせをラップした後、モジュールの組み合わせが継続的に実行されることがわかります。


      • 7. N秒ごとにループ実行

        img
        このモジュールの使用方法は基本的に loop モジュールと同じですが、唯一の違いは、このモジュールには sleep 機能が組み込まれていることです。
        img


      • 8. 精密加工

        img
        変数モジュールや数値の精度制御が必要な場合に使用できるモジュールです。入力パラメータ部分の数値は設定に応じて指定された小数点以下の桁数の数値として出力されます。

        たとえば、数値 3.1415926535897 は正確に処理されます。
        img

        バックテストの結果:
        img


      • 9. ログをクリアする

        img

        ログをクリアするために使用されます。入力パラメータに応じて、ログの一部を保持できます。
        API ドキュメントに記載されているとおり:

        LogReset()

      • 10. 収入ログをクリアする

        img

        収益ログをクリアするために使用されます。入力パラメータに応じて、ログの一部を保持できます。
        API ドキュメントに記載されているとおり:

        LogProfitReset()

      以下はよく使われるツールモジュールです

      • 11. 市場の特定の属性を取得するための機能モジュール

        img

        このツール モジュールは、図に示すように、「取引モジュール タイプ」のマーケット モジュールと組み合わせて使用​​する必要があります。
        img

        出力情報モジュールを使用して、最新のティッカー市場の最新の取引価格を出力します。
        img

        バックテストの結果:
        img

        JavaScript 戦略コードのように:

        function main () { Log(exchange.GetTicker().Last) }
      • 12. Kラインデータの特定のバーの属性を取得するためのモジュール

        img

        このモジュールは、「取引モジュールタイプ」の K ライン データ取得モジュールと一緒に使用する必要があります。

        まず変数モジュールを作成し、K-line という名前を付けます。
        img
        次に、K ライン データを取得し、K ライン データ モジュールを使用してそれを取得して、変数モジュール「K ライン」に割り当てます。
        img
        次に、「リスト モジュール タイプ」のリスト長モジュールを使用して、K ライン変数モジュールの長さを取得します。これは、K ラインのどのバーからデータを取得するかを指定するために使用されます。
        img
        図のように縫い合わせます。
        img
        バックテストを実行すると、最後の K ライン バーのタイムスタンプが出力されます。
        img

      • 13. 注文書内の注文データを取得するためのモジュール

        img

        また、「トランザクション モジュール タイプ」の Get Depth Data モジュールと一緒に使用する必要があります。

        img

        インデックスを 0 に設定し、売り注文を設定し、売り注文の情報を取得します。

        img

        JavaScript 戦略コードのように:

        function main () { Log(exchange.GetDepth().Asks[0]) }
      • 14. 資産情報内の特定の属性を取得するためのモジュール

        img
        このモジュールは、資産情報取得モジュールと一緒に使用する必要があります。
        img

        例: 現在の口座で利用可能なコインの数を印刷する
        img

        バックテストの結果:
        img

        JavaScript 戦略の場合:

        function main () { Log(exchange.GetAccount().Stocks) }
      • 15. 注文データ内の特定の属性を取得するモジュール

        img

        このモジュールは、注文書の最初の売りの価格や数量など、注文データ内の特定の属性の値を取得するために使用されます (例番号 13)。
        img

        バックテスト結果:
        img
        JavaScript 戦略の場合:

        function main () { Log(exchange.GetDepth().Asks[0].Price) }

        また、「注文詳細クエリモジュール」によって返される注文情報の特定の属性を取得するためにも使用できます (高度なセクションで説明します)。

      • 16. 位置情報における特定の位置の属性を取得するためのモジュール

        img

        同様に、「先物ポジション取得モジュール」と一緒に使用する必要があります。先物ポジション取得モジュールによって返されるポジションデータは、異なる契約と方向のポジションを含むデータ構造である配列(リスト)であることに注意してください。 。そのため、使用時にはインデックスを指定する必要があります。

        ここまで学んだので、ヘッジ操作を組み合わせて、短期契約と先物契約の両方を同時にヘッジしてみましょう。
        私たちは、短期先物契約を 1 つ開き、短期的にロング契約を開くという、ポジティブ裁定ヘッジを行います。

        img

        バックテスト結果:
        img

視覚化の例の戦略:

その他の戦略については、https://www.fmz.com/square をご覧ください。

このシリーズの他の記事

退屈なプログラミングは、ビルディングブロックを使用すると簡単に完了できます。ぜひ試してみてください。とても面白いですよ!

Related Recommendations
Comment
All comments (7)

    指标里没有cci,我如果要用cci是不是就不能用这个可视化去创建

    4 years ago

    这个系列里的文章有讲如何实现自定义的模块。

    4 years ago

    除了深入,初识,进阶这三个还有本系列其他的文章吗,为什么我没找到自定义模块和指标模块用法呢

    4 years ago

    请问可视化中的指标模块是怎么使用的

    5 years ago

    这个系列文章可以看完,又讲。

    5 years ago

    好的,谢谢。找到了

    5 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)