市場取引記録の構造
市場取引記録 Id,または交換インターフェイスが Id を提供していない場合,タイムスタンプを使用して記入します. ID 文字列 ミリ秒タイムスタンプ 時間 番号 取引価格 価格 番号 取引額 総額 番号 注文タイプは {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}を参照してください タイプ 番号
exchange.GetTrades() 関数は Trade の配列または空の配列を返します.
{@fun/Market/exchange.GetTrades exchange.GetTrades} 取引先は 取引先を
市場の構造です
交換インターフェイスが返した元のデータ,バックテストにはそのような属性はありません.
インフォ
オブジェクト
についてSymbol
フィールドは,FMZプラットフォームで定義された取引品種コードです.
Symbol
フィールド値 (例として) は:BTC_USDT
, BTC_USDTのスポット取引ペアを示します.Symbol
フィールド値 (例として) はBTC_USDT.swap
BTCのUSDTの永続契約を表していますSymbol
フィールド値は (例えば):BTC_USDT.BTC-240108-40000-C
USDTのCall オプション契約で 2024年1月8日の実施日付と 40,000の実施価格です.シンボル 文字列 最低価格,または交換インターフェイスが 24 時間間の最高価格を提供していない場合は,売り1 価格を使用して満たします. 高い 番号 最低価格,または交換インターフェースが 24 時間最低価格を提供していない場合は,購入1 価格を使用します. 低い 番号 現時点での販売は1つの価格です. 売る 番号 今という瞬間は 一つの値段で買える 購入する 番号 最新の取引価格です 最後の 番号 期間のオープン価格,取引先インターフェイスが24時間のローリング期間のオープン価格を提供していない場合,現在の価格が満たされます. オープン 番号 最近の取引額は,原則として,スポット取引額はベース通貨で,契約取引額は契約数のものである.交換インターフェイスがそのようなデータを提供しない場合,交換インターフェイスで利用可能なデータで満たされます.例えば,取引額は,引換通貨で表示されます. 容量 番号 ミリ秒レベルタイムスタンプ 時間 番号 ポジション,ほとんどの交換インターフェースはこのデータを提供せず,このデータがサポートされていない場合,値は0です. オープン・インテレスト 番号
exchange.GetTicker() 関数は,Ticker 構造を返します.
オプション契約については,exchange.GetTicker()
FMZの底層が,最初の購入または最初の販売の待機注文がないことが多い.この時点で,FMZの底層が,オプション契約市場の流動性が通常低くなっているため,Ticker
構造フィールドBuy
またはSell
0 とするとエラープロンプトが起動します.
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTickers exchange.GetTickers} 取引先を表示する
標準OHLC構造であるK線バーの構造は,計算と分析のためのK線と指標を描くのに使用されます.
Time 属性の値がこの K 線バーの期間の開始タイムスタンプであるレコード構造のためのミリ秒レベルのタイムスタンプ. 時間 番号 オープニング価格 オープン 番号 最高の値段だ 高い 番号 最安値だ 低い 番号 閉店価格 近づいて 番号 ポジション数,ほとんどの交換インターフェースではこのデータは提供されません.このデータはサポートされていない場合,値は0です. オープン・インテレスト 番号 取引額.原則として,即日取引額はベース通貨で,契約取引額は契約数で表されます.取引先インターフェイスがそのようなデータを提供しない場合は,取引先インターフェイスからの既存のデータで満たされます.例えば,取引額はコート通貨です. 容量 番号
exchange.GetRecords() 関数は,レコードの配列または空の配列を返します.各レコード構造はK線バー,すなわちK線バーを表します.
{@fun/Market/exchange.GetRecords exchange.GetRecords} 取引先を チェックする
秩序の構造
交換インターフェース応答のオリジナルデータでは,バックテストにはそのような属性はありません.
インフォ
オブジェクト
についてSymbol
FMZ プラットフォームで定義された取引製品コードであり,その形式はSymbol
{@struct/Ticker Ticker} 構造のフィールドです
Symbol
フィールド値は (例えば):BTC_USDT
, BTC_USDTのスポット取引ペアを示します.Symbol
フィールド値は (例えば):BTC_USDT.swap
BTCのUSDT標準の永続契約を表していますシンボル
文字列
Order Id,この属性は,英語のコンマで分離された交換製品コードと交換元の注文IDで構成されています.例えば,属性Id
スポット取引対の形式ETH_USDT
OKX交換の順序は次のとおりです.ETH-USDT,1547130415509278720
- わかった
ID
文字列
オーダーの価格,この属性が市場オーダーでは0または-1である可能性があることに注意してください.
価格
番号
市場オーダーのこの属性は,通貨ではなく金額である可能性があることに注意してください.
総額
番号
取引数,交換インターフェイスがこのデータを提供していない場合 0 でパッドされている場合
取引金額
番号
平均取引価格,一部の取引所ではこのデータが提供されていないことに注意してください.この属性は0に設定されています.
平均価格
番号
注文の状態は, {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN ORDER_STATE_UNKNOWN}を参照してください. オーダーが終了した場合は,その順番を表示する.
ステータス
番号
注文タイプは {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}を参照してください
タイプ
番号
契約命令の開封方向については, {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE}を参照してください.
オフセット
番号
この属性はスポットオーダーで""
契約オーダーでは,この属性は特定の契約コードです.
契約型
文字列
についてOrder
オーダーストラクチャは,exchange.GetOrder()
そしてexchange.GetOrders()
機能についてexchange.GetOrders()
配列を返しますOrder
完了していない場合は,返します.[]
この数列は空の数列ですStatus
資産Order
順序構造は,例えば,定数と直接比較することができます.ORDER_STATE_PENDING
同等かどうかを判断し,注文の状態を決定します.
一方向のポジションモードでは,注文が閉じる (減少する) 注文であるかどうかを決定することは不可能である場合,Offset
フィールドはデフォルトで開口方向に設定されています.ORDER_OFFSET_OPEN
.
{@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/Trade/exchange.
市場の深さにおける注文構造
プライス 価格 番号 額について 総額 番号
GetDepth() 関数は,Bids,Askの属性値が OrderBook配列であるデータ構造を返します.
{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/Depth Depth} 詳細はこちらから
市場の深さの構造
販売オーダー配列,すなわちオーダーブック配列は,最低値から最高値まで価格によって並べられ,配列内の最初のオーダーブック構造は最低価格を持っています. 尋ねる 配列 購入オーダー配列,すなわちオーダーブック配列は,価格によって,最高から最低まで並べられ,配列内の最初のオーダーブック構造は最高価格を持っています. 申し出 配列 ミリ秒レベルタイムスタンプ 時間 番号
Exchange.GetDepth() 関数は Depth 構造を返します.
{@fun/Market/exchange.GetDepth exchange.GetDepth} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook} {@struct/OrderBook OrderBook}
口座情報の構造
交換インターフェイスが返した元のデータ,バックテストにはそのような属性はありません.
インフォ
オブジェクト
取引ペアがBTC_USDTである場合,現時点での利用可能な通貨の数.残高は現在利用可能なUSDTの数を指します.U標準契約では,残高は利用可能な手数料 (USDT,quoteCurrency) の金額を指します.
バランス
番号
凍結された資産の価値,注文が完了しない場合.
フローズン バランス
番号
取引可能な取引通貨の数,即時,取引ペアがBTC_USDTである場合,ストックは現在利用可能なBTCの数を指します.ストックは通貨ベースの契約における利用可能なマーージン数 (通貨,ベース通貨) を指します.
ストック
番号
凍結された資産の価値,注文が完了しない場合.
凍結した物
番号
このフィールドをサポートする先物のみですEquity
フィールドは,現在の契約設定の下の先物口座の自己資本の総額です.交換インターフェースが関連するデータを提供していない場合は,このフィールドは0です.
株式
番号
このフィールドは,先物取引対象のみにサポートされています.UPnL
フィールドは,実現されていない利益と損失期貨口座の保全金で開かれたすべてのポジションを,現在の契約設定で計算する.
UPnL 番号
exchange.GetAccount (()) 関数はアカウント構造を返します.返される構造のデータは,現在設定されている取引ペア,契約コードに依存します.
{@fun/Account/exchange.GetAccount exchange.GetAccount} {@fun/Account/exchange.GetAccount.GetAccount.GetAccount.} {@fun/Account/exchange.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount} {@fun/Account/Account.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount.GetAccount} {@account.getAccount.getAccount.getAccount.getAccount}
特定の通貨資産情報の構造
仮想通貨資産の取引所定義名,同じ仮想通貨の取引所によって異なる場合がある.BTC
呼び出せるXBT
ある取引所で
通貨
文字列
通貨資産の可用残高.
総額
番号
凍結された資産の数
凍結した量
番号
についてFrozenAmount
貨幣資産には,未履行の注文にロックされた資産と,先物ポジションにロックされたマーージン部分が含まれます.
{@fun/Account/exchange.GetAssets exchange.GetAssets} 口座を交換する
契約のポジション情報構造
交換インターフェイスが返した元のデータ,バックテストにはそのような属性はありません.
インフォ
オブジェクト
についてSymbol
FMZ プラットフォームで定義された取引製品コードであり,その形式はSymbol
{@struct/Ticker Ticker} 構造のフィールドです
Symbol
フィールド値は (例えば):BTC_USDT
, BTC_USDTのスポット取引ペアを示します.Symbol
フィールド値は (例えば):BTC_USDT.swap
BTCのUSDT標準の永続契約を表していますシンボル 文字列 位置バーのサイズ,計算で記入します.交換インターフェイスがこのデータを提供していない場合,それは不正確かもしれません. マージンレベル 番号 ポジションサイズ,通常は正の整数 (契約番号の数) である.契約の仕様,例えば契約倍数,値など,取引所によって異なる可能性があることに注意してください. 総額 番号 ポジション凍結金額,閉じたオーダーが完了しないときに一時的に凍結されたポジションの数. 凍結した量 番号 ポジションの平均価格,原則としてポジション全体の平均価格である (決済には参加しない).データが交換インターフェイスから提供されない場合,交換インターフェイスで利用可能なポジションの平均価格 (決済に参加する) で満たされます. 価格 番号 ポジションの浮動利益/損失は原則として,ポジションの実現されていない利益/損失である.データが交換インターフェイスから提供されない場合,それは交換インターフェイスの他の利益/損失データで満たされます.利益と損失の価値の単位は,現在の契約手数料の単位と同じです. 利益 番号 ポジションタイプは {@var/POSITION_DIRECTION/PD_LONG PD_LONG}, {@var/POSITION_DIRECTION/PD_SHORT PD_SHORT}を参照してください タイプ 番号 契約コードについては,関数 {@fun/Futures/exchange.SetContractType exchange.SetContractType} の説明を参照してください. 契約型 文字列 取引先インターフェイスがこのデータを提供していない場合 0で記入されたポジションが占めるマーゲン. マージン 番号
exchange.GetPositions() 関数は,ポジションの配列または空の配列を返します. 仮想通貨先物については,Exchange.GetPositions() が返したポジション構造配列を注意することが重要です. ポジションデータ構造内のFrozenAmount,Profit,Margin属性については,取引所が提供するデータが均一ではないため,GetPositions() インターフェースでは,交換オブジェクトが返したデータの定義が異なる場合があります.例えば,一部の取引所にはポジションデータにポジションフリーズデータが存在しないため,FrozenAmountは0です.特定のデータを計算する必要がある場合は,Info属性内の元のデータを計算および分析するために使用できます.
{@fun/Futures/exchange.GetPositions exchange.GetPositions} ポジションを交換する
取引される品種に関する市場情報の構造
例えば"btcusdt"
についてSymbol
この属性のフォーマットと定義は,取引所で取引されている品種の元の名称を記録します.Symbol
{@struct/Ticker Ticker} 構造のフィールドです
シンボル
文字列
例えば"BTC"
についてBaseAsset
このフィールドは,取引される通貨の名前 (すなわち:ベース通貨) を記録し,均等に大文字が表示されます.
基本資産
文字列
例えば"USDT"
についてQuoteAsset
このフィールドは,単一の大文字で表される通貨の名前 (例えば:quoteCurrency) を記録します.
コートアセット
文字列
例えば0.01
についてTickSize
このフィールドは,取引所で取引されている商品の価格の最小の変化の値を記録します.
TickSize サイズ
番号
例えば0.01
についてAmountSize
このフィールドは,その取引の為,取引所に付与された注文の量における最小変化の値を記録する.
量 サイズ
番号
例えば2
についてPricePrecision
このフィールドは,取引所で取引されている商品の価格の精度を記録し,価格が2桁の精度で正確であることを示します.
価格 精度
番号
例えば3
についてAmountPrecision
このフィールドは,取引される品種について取引所に付与された注文の精度を記録し,注文が3桁の小数点まで正確であることを示します.
量 精度
番号
例えば0.001
についてMinQty
このフィールドは,取引所の最低オーダーサイズを記録します.
ミニQty
番号
例えば1000
についてMaxQty
このフィールドは,取引のその種類に対して,取引所で配置できる最大数の注文を記録します.
マックスQty
番号
例えば5
についてMinNotional
このフィールドは,その取引の種類に対して,取引所に置かれた注文の最小額を記録します.
ミノノショナル
番号
例えば9999999
についてMaxNotional
フィールドは,その取引の種類について,取引所に置かれたオーダーの最大額を記録します.
マックスノティアル
番号
フィールドCtVal
取引所で取引される商品の価値を,取引所に記入された通貨で記録します.CtValCcy
例えば:CtVal
0.01 となりますCtValCcy
は"BTC"
契約の価値は 0.01 BTC です.
CtVal
番号
フィールドCtValCcy
契約の価値単位を記録する.BTC
, USD
, ETH
など
CtValCcy について
番号
フィールドInfo
取引所の市場情報インターフェースによって返される種に関する原始データを記録します.
インフォ
オブジェクト
exchange.GetMarkets() 関数は,この文字を含む辞書を返します.Market
構造について
交換によってサポートされていないフィールドは無視されます. 上記のフィールドの値は交換インターフェースの原始データから取られています.Info
field.
{@fun/Market/exchange.GetMarkets exchange.GetMarkets} 取引先をチェックする
取引製品の資金調達の割合の構造. 仮想通貨永久契約のみが資金調達の割合をサポートする.
暗号通貨の先物為替資金率インターフェイスが呼び出されると,原始データが返されます.
インフォ
オブジェクト
についてSymbol
フィールドは,FMZプラットフォームで定義された取引製品コードです.
シンボル
文字列
資金提供率間隔はミリ秒で28800000
8時間の間隔です
インターバル
番号
次の資金調達の利子期間の開始時刻のタイムスタンプ (この期間の決済時間) をミリ秒で表します.
時間
番号
この期間の決済に使用される資金の割合です.
税率
番号
異なる先物取引所の永続契約資金の利率は,異なる計算方法とメカニズムがあり,決済サイクルは1時間,4時間,8時間,1日である.
期貨取引所の永続契約の現在の資金調達の利率は,固定値と,リアルタイムで計算される変動値を有する.
についてRate
フィールドは,資金提供率の値です.%
値に変換したい場合は,%
100 で掛けると,%
終わりに
{@fun/Futures/exchange.GetFundings exchange.GetFundings} 金融取引は 金融取引の 取引先で
このJSON構造は,HttpQuery関数とHttpQuery_Go関数のパラメータを設定するために使用されます.
要求方法,例えば:GET
, POST
など
方法
文字列
リクエストボディ.例えば,POST リクエストでは,ボディにはフォームデータ,JSON,テキストなどが含まれます.
身体
文字列
文字セットのエンコーディング.例えば,ボディ内のテキストデータのエンコーディングを以下のように指定する."UTF-8"
- わかった
カーセット
文字列
クッキーは,クライアント (通常はブラウザー) とサーバーの間に状態情報を保存し交換するために使用される小さなデータです.
クッキー
文字列
ブラウザの指紋をシミュレートするために使われます
プロフィール
文字列
true に設定すると,HttpQuery 関数呼び出しは完全な応答メッセージを返します. false に設定すると,応答メッセージ Body のデータのみが返されます.
debugする
ボール
リクエストヘッダ情報はキー値ペア (JSON構造) の形で存在し,コンテンツタイプ,認証情報,キャッシュ制御など様々な情報を送信するために使用されます.
ヘッダ
JSON
タイムアウト設定 1000を設定すると,1秒のタイムアウトになります
タイムアウト
番号
使用例:
function main() {
var options = {
method: "POST",
body: "a=10&b=20&c=30",
charset: "UTF-8",
cookie: "session_id=12345; lang=en",
profile: "chrome_103",
debug: false,
headers: {"TEST-HTTP-QUERY": "123"},
timeout: 1000
}
var ret = HttpQuery("http://127.0.0.1:8080", options)
Log(ret)
}
上記コードを実行すると送信される http メッセージ:
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br
e
a=10&b=20&c=30
0
{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go} ウェブ上で検索するサイト
このJSON構造は,デバッグモードでHttpQuery関数によって返されるデータ構造です.options
構造パラメータは正です
http ステータスコード ステータスコード 番号 ヘッダ情報を要求する. タイトル JSON クッキーの情報 クッキー 配列 リクエストの完全なパス情報 トレース JSON メッセージの長さ 長さ 番号 メッセージの内容 身体 文字列
返されたJSONデータ構造の例は:
{
"StatusCode": 302,
"Header": {
"Content-Type": ["text/html"],
// ...
},
"Cookies": [{
// ...
}],
"Trace": {},
"Length": 154,
"Body": "..."
}
{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go} ウェブ上で検索するサイト
このJSON構造は,戦略状態バーで表示されるテーブルコンテンツを構成するために使用されます.
解析および表示される UI とコントロールのタイプを設定するために使用されます.状態バーテーブルでは,固定設定で:table
- わかった
タイプ
文字列
ステータスバー表のタイトルを設定するために使用されます.
タイトル
文字列
状態バー表の列タイトルを設定するために使用する.配列の最初の要素は最初の列のタイトルである.
コール
配列
状態バーテーブルの行データを設定するために使用されます.行配列 (二次元配列) の最初の要素は,配列構造でもあります.この配列構造の長さは,表の列数 (配列構造の要素は,表の列名に一つずつ対応します) と一致する必要があります.すなわち,表の最初の列のデータです.
列
配列
function main() {
var tbl = {
type: "table",
title: "title",
cols: ["Column 1", "Column 2", "Column 3"],
rows: [
["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
]
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
{@fun/Log/LogStatus ログステータス}
このJSON構造は,ステータスバーのボタン制御を構成するために使用されます. ボタン制御JSON構造は,ステータスバーテーブルJSON構造に埋め込むことができます. この構造は古いバージョンの構造であり,プラットフォームはまだ互換性があります. ボタンJSON構造の最新バージョンを使用することをお勧めします. ステータスバー ボタン コントロールを構成する例 (ボタンが起動してクリックされた後,ポップアップ ボックスは入力フィールドを通じて構成される単一の入力 コントロールを含みます):
{
"type": "button",
"cmd": "open",
"name": "opening a position",
"input": {
"name": "number of opening positions",
"type": "number",
"defValue": 1
}
}
状態バーボタンをクリックすると起動するポップアップボックスのコントロールは,input
またはgroup
.
ボタンのコントロールでは,固定設定は:button
- わかった
タイプ
文字列
ボタンタイプ設定
クラス
文字列
ボタンのコントロールのテキスト つまり ボタンの名前です
名前
文字列
ボタン制御がクリック操作を誘発するときに戦略に送信されるインタラクティブなコマンドコンテンツ.
cmd
文字列
ボタン制御の記述. 記述は,マウスがステータスバーのボタンを押したときに表示されます.
記述
文字列
ボタンを disabled (true) / enabled (false) に設定する.
障害者
ボール
インタラクション用のステータスバーボタンを構築する際には,データ入力もサポートされます.インタラクションコマンドは最終的にGetCommand()
追加するinput
状態バーのボタン制御のJSONデータ構造への項目を入力します. ボタンを起動すると表示されるポップアップボックスに入力制御を設定します.
例えば,値を設定するにはinput
フィールド:
{
"name": "Number of opening positions",
"type": "number",
"defValue": 1,
"description": "test",
}
上記のJSON構造の各フィールドの記述:
"number"
:数値入力制御"string"
文字列入力制御"selected"
:ドロップダウンボックス制御."boolean"
制御を切り替える"input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}
,ドロップダウンボックスオプションのテキスト記述はA,B,Cに設定されています.ドロップダウンボックス型制御で拡張されたフィールドでは:
{text: "description", value: "value"}
デフォルトオプションを設定するために defValue フィールドを使用します.インプット
JSON
についてinput
状態バーボタンをクリックすると起動します.group
そしてinput
コントロールのグループを構成します.group
データの構造はinput
フィールドの値. フィールドの適切な説明を参照してくださいinput
field.
グループ 配列
この例はclass
ステータスバーのボタンのJSON構造の値:
function main() {
var table = {
type: "table",
title: "Status bar button style",
cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"],
rows: [
[
{"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
{"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
{"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
{"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
{"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
{"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
]
]
}
LogStatus("`" + JSON.stringify(table) + "`")
}
この例では,group
フィールドとinput
フィールド:
function main() {
// The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
var testBtn1 = {
type: "button",
name: "testBtn1",
cmd: "cmdTestBtn1",
input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
}
/*
Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
*/
var testBtn2 = {
type: "button",
name: "testBtn2",
cmd: "cmdTestBtn2",
input: {
name: "testBtn2MultiComboBox",
type: "selected",
description: "Implementing multiple selection in drop-down box",
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
defValue: ["A", "C"],
multiple: true
}
}
// Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
var testBtn3 = {
type: "button",
name: "testBtn3",
cmd: "cmdTestBtn3",
group: [
{name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]},
{name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"},
{name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]},
{
name: "comboBox4",
label: "labelComboBox4",
description: "Drop-down box 4",
type: "selected",
defValue: ["A", "C"],
multiple: true,
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
}
]
}
while (true) {
LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(5000)
}
}
{@fun/Log/LogStatus ログステータス}
このJSON構造は,ステータスバーのボタン制御を構成するために使用されます. ボタン制御JSON構造は,ステータスバーテーブルJSON構造に埋め込むことができます. ボタンJSON構造の最新バージョン. ステータスバー ボタン コントロールを構成する例 (ボタンが起動してクリックされた後,ポップアップ ボックスは複数の入力 コントロールを含み,グループフィールドを通じて構成されます):
{
"type": "button",
"cmd": "open",
"name": "Open a position and place an order",
"group": [{
"type": "selected",
"name": "tradeType",
"label": "order type",
"description": "market order, limit order",
"default": 0,
"group": "trading setup",
"settings": {
"options": ["market order", "limit order"],
"required": true,
}
}, {
"type": "selected",
"name": "direction",
"label": "trading direction",
"description": "buy, sell",
"default": "buy",
"group": "trading setup",
"settings": {
"render": "segment",
"required": true,
"options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
}
}, {
"type": "number",
"name": "price",
"label": "price",
"description": "order price",
"group": "trading setup",
"filter": "tradeType==1",
"settings": {
"required": true,
}
}, {
"type": "number",
"name": "amount",
"label": "order quantity",
"description": "order quantity",
"group": "trading setup",
"settings": {
"required": true,
}
}],
}
状態バーボタンをクリックすると起動するポップアップボックスのコントロールは,input
またはgroup
.
ボタンのコントロールでは,固定設定は:button
- わかった
タイプ
文字列
ボタンのコントロールのテキスト つまり ボタンの名前です
名前
文字列
ボタン制御がクリック操作を誘発するときに戦略に送信されるインタラクティブなコマンドコンテンツ.
cmd
文字列
インタラクション用のステータスバーボタンを構築する際には,データ入力もサポートされます.インタラクションコマンドは最終的にGetCommand()
追加するinput
状態バーのボタン制御のJSONデータ構造への項目を入力します. ボタンを起動すると表示されるポップアップボックスに入力制御を設定します.
古いバージョンの入力構造と比較して,新しいバージョンにはいくつかの新しいフィールドと変更があります:
{
"type": "selected",
"name": "test",
"label": "topic",
"description": "desc",
"default": 1,
"filter": "a>1",
"group": "group1",
"settings": { ... }, // Component configuration
}
上記のJSON構造の各フィールドの説明と説明:
タイプ
コントロールタイプ (必須フィールド) は,次の設定をサポートします."number"
数値入力ボックス"string"
文字列入力ボックス"selected"
ドロップダウンボックス"boolean"
コントロールを切り替える
名前 現在の JSON 構造が入力フィールドのフィールド値である場合,レーベルフィールドが設定されていない場合,name は状態バーボタンをクリックした後にポップアップボックスにポップアップされるコントロールタイトルです. 現在の JSON 構造がグループフィールドのフィールド値 (配列構造) の要素である場合,名字は制御タイトルとして使用されません.名字フィールドは制御入力コンテンツのフィールド名を表示するために使用されます.例えば,グループフィールドの抜粋は例として使用されます:
var testBtn3 = {
type: "button",
name: "testBtn3",
cmd: "cmdTestBtn3",
group: [
{name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]},
{name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"},
{name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]},
{
name: "comboBox4",
label: "labelComboBox4",
description: "Drop-down box 4",
type: "selected",
defValue: ["A", "C"],
multiple: true,
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
}
]
}
このスニペットによると,ステータスバーボタンがインタラクションを誘発した場合,ポップアップボックスは4つのコントロールでポップアップします.これらはすべてドロップダウンボックスのコントロールです.各コントロールのオプションを設定し,インタラクションメッセージを送信するためにOKをクリックした後,戦略のGetCommand関数は受信します.cmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}
- わかった
JSON構造の名前の値は,返されたインタラクティブな情報のフィールド名として使用されます.例えば:comboBox1,comboBox2,など.
ラベル コントロールのタイトルを設定するために使われます
記述 コントロールの記述.現在の JSON 構造がグループフィールドのフィールド値 (配列構造) の要素であり,レーベルフィールドが設定されていない場合,記述は,状態バーボタンをクリックした後にポップアップボックスに表示されるコントロールタイトルです.
デフォルト 制御装置のデフォルト値
フィルター 選択器,制御を隠すのに使用する.このフィールドを設定しないことは,フィルタリング (コントロールを表示する) が行われないことを意味します.このフィールドを設定すると,表現が真であるときフィルタリング (コントロールを表示する) が行われません.表現が偽であるときフィルタリング (コントロールを表示しない) が行われます.
グループ 折りたたむことができるコントロールのグループを制御するために使用されます.
設定 コンポーネント設定,コントロールには様々なUIオプションがあります.このオプションを使用して特定の設定を行います.例えば:
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
設定:
setings.required: 設定が必要かどうか
settings.disabled: 設定を無効にするか否か
settings.min: type=number で有効で,文字列の最小値または最小長を示します.
settings.max: type=number で有効で,文字列の最大値または最大長を示します.
settings.step: type=number と render=slider で有効で,ステップ長さを表示する.
settings.multiple: type=が選択されている場合有効で,複数選択がサポートされていることを示します.
settings.customizable: type=が選択されたときに有効で,カスタマイゼーションがサポートされていることを示す.ユーザーはドロップダウンボックスのコントロールで直接編集し,新しいオプションを追加することができます.新しく編集されたオプションが選択された場合,インタラクションが起動するときにオプションが表示する値の代わりにオプションの名前を使用します.
settings.options: type=選択された場合有効で,選択オプションのデータ形式を表示します: [
インプット
JSON
についてinput
状態バーボタンをクリックすると起動します.group
そしてinput
コントロールのグループを構成します.group
データの構造はinput
フィールドの値. 上の記述を参照してくださいinput
field.
グループ 配列
バイリンガル設定をサポート:
{
type:'selected',
name:'test',
label:'选项|options',
description:'描述|description',
default:0, // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
filter:'a>1&&a<10',
group:'分组|group',
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
}
{@fun/Log/LogStatus ログステータス}
このJSONは,カスタム・ドラッグ関数のチャート構成情報を設定するために使用されます.Chart()
. 使用されているチャートライブラリはHighchartsです.ここにはいくつかの基本的な設定フィールドのみがリストされています.
プラットフォーム拡張フィールド.Highstocksチャートを使用するには true に設定; Highchartsチャートを使用するには false に設定.
__is ストック 文字列
{
layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
height: 300, // Specify height
}
延長 JSON グラフのタイトル タイトル 文字列 X軸の配置 x軸 JSON Y軸の配置 y軸 JSON グラフデータシリーズ シリーズ JSON
簡単な図面の例です
// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {
// This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
__isStock: true,
// Zoom tool
tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},
// title
title : { text : 'Price difference analysis chart'},
// Select range
rangeSelector: {
buttons: [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
selected: 0,
inputEnabled: false
},
// The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
xAxis: { type: 'datetime'},
// The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
yAxis : {
// title
title: {text: 'Price difference'},
// Whether to enable the right vertical axis
opposite: false
},
// Data series, this property saves each data series (line, K-line chart, label, etc.)
series : [
// The index is 0, and the data array stores the data of the index series.
{name : "line1", id : "line 1,buy1Price", data : []},
// The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
{name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}
]
}
function main(){
// Call the Chart function to initialize the chart
var ObjChart = Chart(chart)
// Clear
ObjChart.reset()
while(true){
// Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
var nowTime = new Date().getTime()
// Get market data
var ticker = _C(exchange.GetTicker)
// Get the buy price from the return value of the market data
var buy1Price = ticker.Buy
// Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
var lastPrice = ticker.Last + 1
// Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
ObjChart.add(0, [nowTime, buy1Price])
// Same as above
ObjChart.add(1, [nowTime, lastPrice])
Sleep(2000)
}
}
{@fun/Log/チャート・チャート}
このJSONは,カスタム・ドラッグ関数のチャート構成情報を設定するために使用されます.KLineChart
基本的な設定フィールドがいくつかだけリストされています.
メインチャートで描くかどうか オーバーレイ ボール X軸の配置 x軸 JSON Y軸の配置 y軸 JSON カンドルスタイク・チャート設定 ろうそく JSON
参照してくださいKLineChart 関数を用いたグラフの描画に関する特別記事.
{@fun/Log/KLineChartKLineChart} クライン・チャート クライン・チャート
JSON は,JSON が読み込むデータを設定するために使用されます.exchange.SetData()
JSONデータは配列構造で,各要素も配列である.[time, data]
.
データのタイムスタンプで,このデータの時刻を表示します.
時間
番号
コンピュータで読み込まれるデータの中で特定の時間に対応するデータの一部です.exchange.SetData()
戦略が実行されているとき,exchange.GetData()
この関数は,現在の時間に応じて,対応するタイムスタンプでデータを取得します.
データ 文字列,数, bool,オブジェクト,配列など
バックテストシステムにデータをロードし,戦略バックテストを実行しているときにデータを取得する例:
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
while(true) {
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
}
}
{@funSetData}, {@funGetData} 面白いデータがある
このJSONは JSONが返したデータ構造ですEventLoop()
機能EventLoop()
機能モニター: 1. WebSocket に読み取れるデータイベント 2. Exchange.Go (※) と HttpQuery_Go (※) の関数と並行するタスク完了イベント 3. メッセージイベントは,WebSocket が作成したスレッドで送信されます.threading.Thread()
JavaScript 言語の戦略で機能します
イベントシーケンス番号 第2条 番号 イベント名 イベント 文字列 イベントスレッドID スレッド 番号 イベントインデックス インデックス 番号 ナノタイムスタンプ ナノ 番号
試しにexchange.Go()
プログラムによって返されるイベントデータ構造EventLoop()
function.
{
"Seq":1,
"Event":"Exchange_GetTrades",
"ThreadId":0,
"Index":3,
"Nano":1682068771309583400
}
JavaScript 言語戦略の同時実行スレッド (JavaScript 言語戦略の同時実行スレッド) でthreading.Thread()
機能) がpostMessage()
メッセージを送信するために使用されます.EventLoop()
メッセージを受信するスレッド内の関数は,次のイベントデータ構造を監視します.
{
"Seq":4,
"Event":"thread",
"ThreadId":1,
"Index":0,
"Nano":1727592066508674000
}
{@fun/Global/EventLoop イベントループ}
このJSONは JSONが返したデータ構造ですDBExec()
SQL 文を実行するときに返されます.exec()
方法によって作成されたオブジェクトのDial()
function.
検索するデータの列名,文字列数列 コラム 配列 特定のデータがクエリされ,各データが列名に対応する. 値フィールドの値は2次元の配列であり,各要素は配列とデータレコードである. 値 配列
データベース内のデータをクエリする例:
{
"columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
"values":[
[1518970320000,100,99.1,90,100,12345.6],
[1518960320000,100,99.1,90,100,12345.6]
]
}
{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial} ダイヤルする
このJSONは,メンバー関数によって返されるデータ構造です.join()
についてThread
ファイルに並行するスレッドに関する情報を保存します.JavaScript
言語戦略Thread
糸のオブジェクトを指します.threading.Thread()
.
スレッドID id 番号 糸が締めくくられるかどうかです 終了 ボール ナノ秒で糸の走行時間 経過した 番号 スレッド関数の返し値 レット 番号
次のコードは,タイムアウトメカニズムをテストします.join()
機能についてThread
返回値を印刷するjoin()
function.
function testFunc() {
for (var i = 0; i < 5; i++) {
Log(i)
Sleep(300)
}
}
function main() {
var t1 = threading.Thread(testFunc)
Log(t1.join(1000)) // undefined
Log(t1.join()) // {"id":1,"terminated":false,"elapsed":1506864000}
} ```
{@fun/Threads/Thread/join join}
内蔵機能
内蔵変数