トレーディング戦略を構築するための可視化モジュール - 初対面

作者: リン・ハーンリディア, 作成日:2022-12-12 16:50:29, 更新日:2023-09-20 09:44:29

img

トレーディング戦略を構築するための可視化モジュール - 初対面

ビジュアル・プログラミングは 定量的な取引の分野でも ソフトウェア開発者の理想的な目標でした 視覚化では プログラミング開発の技術的な限界を大幅に削減します 視覚化では プログラミング開発の技術的な限界を大幅に削減します ユーザは退屈なコードの堆積を扱わなくなり 想像力と論理的思考を活用して ビジネスそのものに 焦点を当てるだけです 好きなプログラムを作れる 素晴らしいことじゃない?

量的な取引戦略の視覚プログラミング分野に 一緒に取り組みましょう!

初期FMZ Quantの視覚プログラミング

ログインした後にhttps://www.fmz.com, アカウントを登録してください (既に登録している場合は直接ログインしてください) そして: ダッシュボード -> 戦略 -> 戦略を追加します

img

視覚化戦略が示されています これは,デフォルトで設定された交換 (バックテストまたはロボットに追加された最初の交換オブジェクト) のアカウント資産情報を出力するためにのみ使用されます. (下 の 図 を 参照)

img

ビジュアライゼーションのデザインの概念を理解しましょう ビジュアライゼーションのデザインの概念を理解しましょう

  1. スプリーシング 注意深く見ると,モジュールはテンオン (円) とモルティス (凸) を有し,つまりモジュールは"接続"したり"接続される"ことができます. 2つのモジュールが 接続可能な機能コードを表している場合 2つのモジュールのテンンとモルティスは 近づくと引き寄せられます

img

  1. モジュールの設定と調整 いくつかのモジュールは,例えば,いくつかの特別な設定領域を持っています:

img

Itemモジュールを左側からAddモジュールにドラッグして,テンオン (円) の位置を追加して,テキストをスペイシングする位置を追加できます. この方法でピニオンをクリックして モジュールを調整して設定します

  1. 模組のデフォルト入力パラメータ いくつかのモジュールは数値値または文字列であるかもしれないいくつかのパラメータを入力する必要があります. 変数を入力パラメータとして追加しない場合, 模様はデフォルトの入力パラメータに従って実行されます.

img

このモジュールの計算結果を出力します. このモジュールの計算結果を出力します.

img

入力パラメータの位置がデフォルトになっている場合 9の平方根を計算する入力パラメーターとして 9のデフォルト値が使用されます

img

もちろん,変数モジュールを入力パラメータとして使用したい場合は,変数モジュールを直接テンオン (円) 位置に結合できます.

img

  1. オペレーション マウスの左ボタンをクリックしてドラッグできます. モジュールは ctrl+cでコピーされ ctrl+vで貼り付けられます コードやテキストをコピー・ペーストするのと同じくらい便利です マウスのホイールでスケーリングできます そしてすべてのモジュールは大きくも小さくもスケーリングされます 操作エリアの空白位置をクリックしてドラッグして移動します 右側のゴミ箱は 最近削除されたモジュールを記録します モジュール戦略をスプレイスした後に 保存をクリックすることを忘れないでください.

ビジュアライゼーション ツール モジュールへの紹介

視覚編集領域の左側には多くのモジュール分類があり それぞれの分類プロジェクトには多くの視覚モジュールが利用できます

11つのカテゴリーがあります

img

Util モジュール:

img img img

  1. 出力情報: このモジュールは,通常,テキストクラスのモジュールと併用されます.

img

テキストモジュールに文字列を入力して,出力情報モジュールを実行すると,テキストモジュールの文字列の内容が印刷されます.

img

バックテスト:

img img

JavaScript 言語コードのように:

function main(){
    Log("Hello, Blockly!")
}
  1. 微信 プッシュ: このモジュールは"出力情報"と同じ外観を持っていますが,同時に通行口座にリンクした情報を WeChat に送るものとは異なります.

img

JavaScript 言語コードのように:

function main () {
Log("WeChat Push!@")
}
  1. 例外を投げる 例外モジュールを投げるとプログラムがエラーを発し,その後プログラムは実行を停止します (例外処理コードを書かない).

img

同じように,JavaScript 戦略では,メイン関数は直接 投げ string to output 関数を実行します.

function main () {
    throw "The first sentence throws an exception to stop the program!"
}

バックテスト結果:

img img

一般的には,デバッグ時に使用される.例えば,特定の条件下でプログラムを停止させ,観察のためにその時にいくつかのデータをプリントしたい場合. プログラムがエラーを報告して エラーを見つけ出すことができます プログラムがエラーを報告して エラーを検出する方法は

  1. 眠れ スリープモジュール

img

JavaScript の戦略では

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

スリープ・モジュールをテストする

img

バックテスト結果:

img

  1. 印刷回報

img

このモジュールは,FMZ Quant 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)
}

返信情報を出力したい場所でも 結合できます

  1. ループimgループモジュールは,スプライスされたモジュール組み合わせの連続を包むことができ,モジュール組み合わせがループを実行できるようにします.

テスト:imgバックテスト結果:

img

ループモジュールがラップされた後も 連続して実行されます ループモジュールがラップされた後も 連続して実行されます

  1. N秒ごとにループを実行するimgこのモジュールの使用は,ループモジュールの使用と基本的には同じです.唯一の違いは,モジュールは独自の睡眠を持っています.img

  2. 精密加工imgこのモジュールは,変数モジュールまたは数値値が精度を制御する必要がある場合に使用できます.入力パラメータ部分の数値値は,設定に従って指定された小数点の数値として出力されます.

例えば,精密処理は,値3.1415926535897で実行されます.

img

バックテスト表示:

img

  1. ログをクリアimg

ログをクリアするために使用されます.入力パラメータに応じていくつかのログを保持することができます. APIのドキュメントに書かれているように

LogReset()
  1. リターンログをクリアするimg

返信ログをクリアするために使用されます.入力パラメータに応じて一部のログを保持することができます. APIのドキュメントに書かれているように

LogProfitReset()

ツールモジュールがいくつかあります

  1. 市場の特定の属性を取得するための機能モジュールimgこのツールモジュールは,図のように,トランザクションモジュールのタイプのオートモジュールと併用する必要があります.img輸出情報モジュールを用いて,最新のティッカー市場の最新の取引価格を出力します.imgバックテスト表示:img

JavaScriptの戦略コードのように:

function main () {
    Log(exchange.GetTicker().Last)
}
  1. K線データのバーの属性を取得するモジュールimgこのモジュールは,トランザクションモジュールタイプのK線データ取得モジュールと一緒に使用する必要があります.

まずK線という変数モジュールを作成しますimg変数モジュールに値を代入します K線img次に,K線変数モジュールの長さを取得するために List Module Typeのリスト長度モジュールを使用します. このモジュールは,K線上のどのバーでデータを取得するか指定するために使用されます.img図のように 組み合わせますimg

バックテストが実行されたときに最後のK線バーのタイムスタンプが印刷されます.img

  1. 注文簿の注文のデータを取得するモジュールimgトランザクションモジュールタイプGet Depth Dataモジュールと一緒に使用する必要があります.imgインデックスは0に設定され,販売注文は1つの販売注文の情報を取得するために設定されます.

img

JavaScriptの戦略コードのように:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. 資産情報における属性を取得するためのモジュールimgこのモジュールは,資産情報取得のモジュールと併用する必要があります.img例えば: 現金口座の可用通貨を印刷するimgバックテスト表示:img

JavaScriptの戦略コードのように:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. 順序データで属性を取得するモジュールimgこのモジュールは,注文簿の価格や販売量などの注文データ内の属性の値を得るのに使用されます (例13号).img

バックテスト結果:img

JavaScriptの戦略コードのように:

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

また,Query Order Details Module (先端章で説明される) によって返されるオーダー情報の属性を取得するために使用できます.

  1. 位置情報から位置の属性を取得するモジュールimgGet Futures Position Moduleで返されるポジションデータは,異なるコントラクトと方向のポジションを含む配列 (リスト) であることに注意してください.したがって,インデックスは使用時に指定する必要があります.

短期契約と先行契約の両方をカバーする 取引を組み合わせましょう

前期契約のショートポジション契約を開き,最近の契約のロングポジション契約を開きます.

img

バックテスト結果:

img

視覚化戦略の例:

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318より多くの戦略については,以下を参照してください.https://www.fmz.com/square

このシリーズの他の記事

- 取引戦略の構築のための可視化モジュール - 深入 (https://www.fmz.com/digest-topic/9509) について - 取引戦略の構築のための可視化モジュール - 先進的な理解 (https://www.fmz.com/bbs-topic/9815)

退屈なプログラミングは簡単にブロックで完了できます. 試してみるのはとても面白いです!


関連性

もっと