ビジュアルモジュール構築とスペイジングの概念的な理解を持っています. 次に,他のモジュールの使い方を学ぶことは簡単です. より複雑な機能を組み合わせることも可能です.
先の学習とテストでは,いくつかの"取引カテゴリー"モジュールに触れられました.
例えば:
繰り返すつもりはない.
ロボット取引の戦略を書くとき,ヘッジ戦略のような 1 つ以上の交換オブジェクトを追加できます. あるいは,市場にアクセスするために,取引所を1つずつ訪問する必要があります. 交換の数を得るモジュールが 役立っています
シンプルな構造で印刷することができます.
プログラミングの戦略コードを呼び出すようなものです
function main () {
Log(exchanges.length)
}
この組み合わせのモジュールの実行結果を見てみましょう.
バックテストログの出力結果は 3 です. テストログの出力結果は 3 です.
3つの交換オブジェクトを追加すると,ドロップダウンボックスは3つのオプションを表示します. ループタイプでループモジュールを事前に学ぶ.
条件判断のモジュールを事前に学ぶ:
判断条件は次のように書ける:
ループモジュールを使って 追加された交換名を横断します 状態判断モジュールを用いて 現在のループ数と 印刷される交換の名前に一致するかどうかを判断します
バックテスト結果:
JavaScriptの戦略コードのように:
function main () {
for (var i = 1 ; i <= exchanges.length ; i++) {
if (i == 1) {
Log(exchanges[0].GetName())
} else if (i == 2) {
Log(exchanges[1].GetName())
} else {
Log(exchanges[2].GetName())
}
}
}
簡単な例として,現在設定されている最初の交換オブジェクトの取引ペアを取得し,それをテキスト変数 (変数カテゴリで事前に作成) に割り当てます.
バックテスト結果:
JavaScriptの戦略コードを呼び出す場合:
function main () {
var text = exchange.GetCurrency()
Log(text)
}
このモジュールはオーダー操作にとって非常に重要です.最初のテンオン (
例えば,購入注文の例を,現在のティック市場データの最新価格に基づいて 10元の変動価格を追加し,注文量を0.1コインに設定し,注文IDをプリントします.
バックテスト結果:
この JavaScript 戦略コードのようなものです
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
Log(id)
}
このモジュールは,現在の取引ペアの未完了状態にあるすべての待機注文を返します.リストタイプモジュール (横断操作など) によって処理できるリスト構造 (配列) を返します. 例えば,上記の例の注文モジュール[4]をわずかに修正し,注文を出すときに追加された10元の価格をマイナス10元に変更しました.注文は直ちに閉鎖されませんが,取引の深さ (つまり1つ購入,2つ購入,Nで一定のレベルを購入) に配置されます.この方法で,注文は完了を待っている待機注文の状態になります. 次に,当取引ペアの待機注文を取得するモジュールを用いて,PENDING状態 (満たされるのを待っている) の注文のリストを取得します. 後続の市場でオーダーが満たされるため,バックテストの最終的な観察に影響を避けるため,モジュール"現在の取引ペアの待機中のオーダーを取得する"が実行された後,オーダーリストをプリントし,モジュール"例外を投げる"をすぐにプログラム停止するために使用します.
バックテストでは
その時の最新価格より10元低かったので すぐに完了しません 注文を待機中の取引状態で取得し,それを印刷してください. 最後に,プログラム停止のために例外が投げられます.
組み立てられたモジュールは JavaScript 戦略への呼び出しのようなものです
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
Log(exchange.GetOrders())
throw "stop"
}
このモジュールは,注文をキャンセルするために使用されます.
戦略を書く際にこのような操作を必要とするシナリオはたくさんあります.
待機中の注文をキャンセル
キャンセルオーダーモジュールを学習する際に,当時の取引ペアモジュールの待機中のオーダーを取得するために,[5]を使用し,この機能を達成するために組み合わせることができます.
まず,すべての注文のキャンセルをテストするために,注文をするのは明らかではありません. 2つの注文を配置し始め,価格と量は2つの注文を区別するために異なります.
トラバーサール中に,取得された各オーダーは,変数モジュールオーダーに値が割り当てられます (下記のように変数モジュールタイプで作成されます:)
注文IDを取り出し,それを
バックテスト操作:
JavaScript 戦略説明を使用する:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
Log(id2)
var orders = exchange.GetOrders()
Log(orders)
for (var i in orders) {
var order = orders[i]
Log(exchange.CancelOrder(order.Id))
}
}
モジュールのテンン (凸) 位置はオーダーID変数モジュールに接続され,オーダーの詳細が返される.
実行後に返される順序に注意してください:
例 [5] の実行結果と比較すると,印刷された注文は,[]括弧のない別々の注文情報であることがわかります. なぜなら,例 [5] はリストを返すが,この例は別々の順序情報を返す (ID変数モジュールから,モジュールが渡したテンオン位置に基づいて得られる).
上記の例は,JavaScript 戦略の実行に類似しています.
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
商品先物としてテスト交換を設定します. テスト先物としてテスト先物としてテスト交換を設定します.
バックテスト設定:
次の例では,設定に基づいてバックテストを行います.
商品先物には開業時間と閉店時間があります 市場が閉ざされると接続できません
取引対象が先物取引所として設定されている場合,取引所が契約を設定せず,直接市場情報を入手した場合,エラーが報告されます.
MA909という契約を設定しました メタノールの主要契約です
この方法で,MA909契約の現在のチケット市場での最新の価格値が得られます.
実行命令モジュールで
オーダーの方向は指定する必要があります. 未来取引には以下の条件があります. 買い: オープン・ロング・ポジション 売り: オープンショートポジション Closebuy: ロングポジションを閉じる クローズセール: ショートポジションを閉じる 4つの方向性 (商品先物取引にはさらに2つの方向性があります.今日,ロングポジションを閉じる場合は closebuy_today,今日,ショートポジションを閉じる場合は closesell_today).
例えば,オーダーモジュールが"買え"と設定されている場合,ロングポジションを開くとショートポジションを閉じるには2つの意味があります.これは曖昧です. したがって,明瞭なオーダー方向を設定するために,先物取引のためのオーダー方向を設定するモジュールが必要である.
バックテスト表示:
JavaScriptの戦略コードのように
function main () {
while (true) {
if (exchange.IO("status")) {
exchange.SetContractType("MA909")
Log(exchange.GetTicker().Last)
exchange.SetDirection("buy")
Log(exchange.Buy(1000, 1))
throw "stop"
} else {
Log("The commodity futures front-end processor is not connected")
}
Sleep(1000)
}
}
デジタル通貨先物取引の利用は,上記 [8] の商品先物取引と基本的には同じである.
デジタル通貨の先物に対するレバレッジを設定するために使用されます.
#Note: Backtesting is not supported.
JavaScriptの戦略のように
function main () {
exchange.SetMarginLevel(10)
}
視覚化戦略の例:
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
このシリーズの他の記事