現時点での設定された取引ペア,契約コード,すなわちティッカーデータに対応するスポットまたはコントラクトの {@struct/Ticker Ticker} 構造を取得します.GetTicker ()
交換オブジェクト {@var/EXCHANGE exchange} のメンバー関数であり,exchange
対象メンバーの関数 (方法) は,exchange
文書には繰り返されないでしょう
についてexchange.GetTicker()
データの要求が成功すると {@struct/Ticker Ticker} 構造を返し,データ要求が失敗すると null 値を返します.
{@struct/Ticker Ticker},ゼロ値
交換する.GetTicker() 交換する.GetTicker (タッカーのシンボル)
パラメータsymbol
要求された {@struct/Ticker Ticker} データに対応する特定の取引ペアとコントラクトコードを指定するために使用されます.このパラメータが送信されない場合は,現在設定されている取引ペアとコントラクトコードの市場データがデフォルトで要求されます.
呼び出すときexchange.GetTicker(symbol)
機能exchange
USDT と BTC と取引される通貨で市場データを要求する必要がある場合,パラメータはsymbol
これは:"BTC_USDT"
形式はFMZプラットフォームで定義された取引ペア形式です.
呼び出すときexchange.GetTicker(symbol)
機能exchange
BTCsymbol
これは:"BTC_USDT.swap"
形式は,トレーディングペアそして契約コードFMZプラットフォームで定義され,文字exchange.GetTicker(symbol)
機能exchange
BTCsymbol
これは:"BTC_USDT.BTC-240108-40000-C"
(Binance Option BTC-240108-40000-C を例として) 形式は,トレーディングペアFMZプラットフォームで定義され,取引所によって定義された特定のオプション契約コードは,文字
シンボル 偽り 文字列
function main(){
// If it is a futures exchange object, set the contract code first, e.g. set it as a perpetual contract
// exchange.SetContractType("swap")
var ticker = exchange.GetTicker()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, the ticker is null, and it will cause an error when accessing ticker.High, so when testing this code, make sure that the exchange interface can be accessed.
*/
Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume)
}
def main():
ticker = exchange.GetTicker()
Log("Symbol:", ticker["Symbol"], "High:", ticker["High"], "Low:", ticker["Low"], "Sell:", ticker["Sell"], "Buy:", ticker["Buy"], "Last:", ticker["Last"], "Open:", ticker.Open, "Volume:", ticker["Volume"])
void main() {
auto ticker = exchange.GetTicker();
Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume);
}
フューチャー取引対象 (すなわち,exchange
またはexchanges[0]
契約コードを設定するには,exchange.SetContractType()
呼び出しが繰り返されない.
function main() {
var ticker = exchange.GetTicker("BTC_USDT")
Log(ticker)
}
def main():
ticker = exchange.GetTicker("BTC_USDT")
Log(ticker)
void main() {
auto ticker = exchange.GetTicker("BTC_USDT");
Log(ticker);
}
試しにsymbol
特定のシンボル (スポットシンボル) の市場データを要求するパラメータ.
についてTicker
返されたデータexchange.GetTicker()
バックテストシステムで機能します.High
そしてLow
市場から1つ購入し,その時点で1つ販売.Ticker
返されたデータexchange.GetTicker()
実際の市場での機能.High
そしてLow
値がカプセル化された交換によって返されるデータに基づいています.Tick
インターフェースで,特定の期間 (通常24時間) の最高値と最低値が表示されます.
支援しない取引所exchange.GetTicker()
機能:
機能名 | サポートされていないスポット交換 | サポートされていない先物取引 |
---|---|---|
GetTicker をインストールする | – | フューチャーズ_Aevo |
{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange.GetTickers}, {@fun/Market/exchange.GetTickers exchange
現時点で設定された取引ペア,契約コード,すなわちオーダーブックデータに対応するスポットまたは契約の {@struct/Depth Depth} 構造を取得します.
についてexchange.GetDepth()
データの要求が成功した場合 {@struct/Depth Depth} 構造を返し,データ要求が失敗した場合 null を返します.
{@struct/Depth Depth},ゼロ値
交換する.GetDepth ((() 交換.GetDepth (深度) シンボル
パラメータsymbol
要求された {@struct/Depth Depth} データに対応する特定の取引ペアとコントラクトコードを指定するために使用されます.このパラメータが送信されない場合,現在設定されている取引ペアとコントラクトコードのオーダーブックデータはデフォルトで要求されます.exchange.GetDepth(symbol)
機能exchange
USDT と BTC と取引通貨で注文簿データを取得するために要求する必要があります.symbol
これは:"BTC_USDT"
FMZ プラットフォームで定義された取引ペア形式です.exchange.GetDepth(symbol)
機能exchange
BTCのU標準永続契約のオーダーブックデータを要求する必要がある場合,パラメータはsymbol
これは:"BTC_USDT.swap"
形式は,トレーディングペアそして契約コードFMZ プラットフォームによって定義され,文字で区切られています.exchange.GetDepth(symbol)
機能exchange
BTCsymbol
これは:"BTC_USDT.BTC-240108-40000-C"
(Binance Option BTC-240108-40000-C を例として) 形式は,トレーディングペアFMZプラットフォームで定義され,取引所によって定義された特定のオプション契約コードは,文字
function main(){
var depth = exchange.GetDepth()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, the depth is null, which will cause an error when accessing depth.Asks[1].Price, so make sure you can access the exchange interface when testing the code.
*/
var price = depth.Asks[1].Price
Log("Sell 2 price is:", price)
}
def main():
depth = exchange.GetDepth()
price = depth["Asks"][1]["Price"]
Log("Sell 2 price is:", price)
void main() {
auto depth = exchange.GetDepth();
auto price = depth.Asks[1].Price;
Log("Sell 2 price is:", price);
}
テストexchange.GetDepth()
機能:
function main() {
// BTC U-based perpetual contract
var depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
}
def main():
depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
void main() {
auto depth = exchange.GetDepth("BTC_USDT.swap");
Log(depth);
}
設定されたときexchange
取引対象は,先物として,symbol
特定のシンボル (フューチャーシンボル) のオーダーブックデータを要求するパラメータ.
バックテストシステムでは,各グレードのデータがexchange.GetDepth()
機能シミュレーションバックテストシステムでは,バックテストによって返されるデータは,exchange.GetDepth()
機能リアル・ティックバックテストは 2階層の深層スナップショットです
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker.GetTicker}, {@fun/Market/Market/
{@struct/Trade Trade} の構造配列を取得します. 現時点での設定された取引ペア,契約コード,すなわち市場取引データに対応するスポットまたは契約.
についてexchange.GetTrades()
この関数は,データ要求が成功した場合に {@struct/Trade Trade} 構造の配列を返し,データ要求が失敗した場合に null 値を返します.
{@struct/Trade Trade}配列,ゼロ値
交換.GetTrades (ゲットトレード) 交換.GetTrades (シンボル)
パラメータsymbol
要求された {@struct/Trade Trade} 配列データに対応する特定の取引ペアと契約コードを指定するために使用されます.このパラメータが通過しなければ,現在設定されている取引ペアと契約コードの最新の取引記録データがデフォルトで要求されます.exchange.GetTrades(symbol)
機能exchange
USDT と BTC と取引される通貨で注文簿データを要求する必要がある場合,パラメータsymbol
これは:"BTC_USDT"
FMZ プラットフォームで定義された取引ペア形式です.exchange.GetTrades(symbol)
機能exchange
BTCのU標準永続契約のオーダーブックデータを要求する必要がある場合,パラメータはsymbol
これは:"BTC_USDT.swap"
形式は,トレーディングペアそして契約コードFMZ プラットフォームによって定義され,文字で区切られています.exchange.GetTrades(symbol)
機能exchange
BTCsymbol
これは:"BTC_USDT.BTC-240108-40000-C"
(Binance Option BTC-240108-40000-C を例として) 形式は,トレーディングペアFMZプラットフォームで定義され,取引所によって定義された特定のオプション契約コードは,文字
function main(){
var trades = exchange.GetTrades()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, trade is null. When accessing trade[0].Id, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type)
}
def main():
trades = exchange.GetTrades()
Log("id:", trades[0]["Id"], "time:", trades[0]["Time"], "Price:", trades[0]["Price"], "Amount:", trades[0]["Amount"], "type:", trades[0]["Type"])
void main() {
auto trades = exchange.GetTrades();
Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type);
}
試験するexchange.GetTrades()
機能:
function main() {
// BTC's U-based perpetual contract
var trades = exchange.GetTrades("BTC_USDT.swap")
Log(trades)
}
def main():
trades = exchange.GetTrades("BTC_USDT.swap")
Log(trades)
void main() {
auto trades = exchange.GetTrades("BTC_USDT.swap");
Log(trades);
}
設定されたときexchange
取引対象は,先物として,symbol
特定のシンボル (フューチャーシンボル) の市場取引記録データを要求するパラメータ.
exchange.GetTrades()
現行の取引ペア,市場の取引履歴 (自分のものではなく) を取得する機能. いくつかの取引所はこの機能をサポートせず,返される特定のデータは,取引記録の範囲が取引所に依存し,特定の状況に応じて処理する必要がある程度です. 返されるデータは配列で,各要素が時間順に並べられ,exchange.GetRecords ()
この関数は同じ順序のデータを返します つまり,配列の最後の要素は現在の時間に近いデータです
についてexchange.GetTrades()
この関数で表示される値が,シミュレーションバックテストシステムでバックテストします.exchange.GetTrades()
使用するときに機能リアル・ティックバックテストシステムにおけるバックテストは,オーダーフローのスナップショットデータ,つまり {@struct/Trade Trade} 構造配列です.
支援しない取引所exchange.GetTrades()
機能:
機能名 | サポートされていないスポット交換 | サポートされていない先物取引 |
---|---|---|
GetTrades は | – | Futures_BitMart / Futures_Bibox について |
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {@fun/Market/exchange.GetRecords exchange.GetRecords}, {
現在設定されている取引ペア,契約コード,すなわちKラインデータに対応するスポットまたはコントラクトの {@struct/Record Record} 構造配列を取得します.
についてexchange.GetRecords()
この関数は,データ要求が成功すると {@struct/Record Record} 構造の配列を返し,データ要求が失敗すると null 値を返します.
{@struct/Record Record}配列,ゼロ値
交換.GetRecords (取得記録) 交換.GetRecords (レコードのシンボル) 交換.GetRecords (記号,点) exchange.GetRecords (シンボル,ピリオド,制限) 交換.GetRecords (期間) 交換.GetRecords (期間,制限)
パラメータsymbol
このパラメータが送信されない場合,現在設定されている取引ペアと契約コードのK線データはデフォルトで要求されます.exchange.GetRecords(symbol)
機能exchange
USDT と BTC と取引通貨でデータを取得するために要求する必要がある場合,パラメータsymbol
これは:"BTC_USDT"
FMZ プラットフォームで定義された取引ペア形式です.exchange.GetRecords(symbol)
機能exchange
BTCのU標準永続契約のオーダーブックデータを要求する必要がある場合,パラメータはsymbol
これは:"BTC_USDT.swap"
形式は,トレーディングペアそして契約コードFMZ プラットフォームによって定義され,文字で区切られています.exchange.GetRecords(symbol)
機能exchange
BTCsymbol
これは:"BTC_USDT.BTC-240108-40000-C"
(Binance Option BTC-240108-40000-C を例として) 形式は,トレーディングペアFMZプラットフォームで定義され,取引所によって定義された特定のオプション契約コードは,文字period
要求されたK線データの期間を指定します.例えば: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15}など.パラメータの値period
定義された標準周期だけでなく,秒で整数値も通過できます.このパラメータが通過しなければ,デフォルトで要求されるK線データの期間は,現在の戦略リアルタイム/バックテスト構成のデフォルトK線周期です.
期間
偽り
番号
パラメーターlimit
このパラメータが送信されない場合,デフォルトの要求長は,交換K線インターフェースの時点で要求される最大数のK線バーである.このパラメータは,交換K線データをクエリするページングを引き起こし,ページングクエリ中に関数呼び出しの時間の消費が増加する可能性があります.
制限
偽り
番号
function main() {
// Print K-line data with a K-line period of 120 seconds (2 minutes)
Log(exchange.GetRecords(60 * 2))
// Print K-line data with a K-line period of 5 minutes
Log(exchange.GetRecords(PERIOD_M5))
}
def main():
Log(exchange.GetRecords(60 * 2))
Log(exchange.GetRecords(PERIOD_M5))
void main() {
Log(exchange.GetRecords(60 * 2)[0]);
Log(exchange.GetRecords(PERIOD_M5)[0]);
}
カスタム期間のK線データを取得します
function main() {
var records = exchange.GetRecords(PERIOD_H1)
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, records is null. When accessing records[0].Time, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High)
Log("The second k-line data is Time:", records[1].Time ,"Close:", records[1].Close)
Log("Current K-line (latest)", records[records.length-1], "Previous K-line", records[records.length-2])
}
def main():
records = exchange.GetRecords(PERIOD_H1)
Log("The first k-line data is Time:", records[0]["Time"], "Open:", records[0]["Open"], "High:", records[0]["High"])
Log("The second k-line data Time:", records[1]["Time"], "Close:", records[1]["Close"])
Log("Current K-line (latest)", records[-1], "Previous K-line", records[-2])
void main() {
auto records = exchange.GetRecords(PERIOD_H1);
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High);
Log("The second k-line data Time:", records[1].Time, "Close:", records[1].Close);
Log("Current K-line (latest)", records[records.size() - 1], "Previous K-line", records[records.size() - 2]);
}
出力K線バーデータ:
function main() {
var records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
}
def main():
records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
void main() {
auto records = exchange.GetRecords("BTC_USDT.swap", 60, 100);
Log(records);
}
設定されたときexchange
取引対象は,先物として,symbol
, period
そしてlimit
特定の製品 (将来の製品) のK線データを要求するパラメータ
バックテストと実際の取引ページで設定できます. パラメータを指定するとexchange.GetRecords()
函数で,そのパラメータ期間に対応するK線データが取得されます.関数を呼び出すときにパラメータが指定されていない場合は,バックテストと実際の市場パラメータに設定されたK線期間に従って対応するK線データが返されます.
返される値は,数列です.Record
蓄積されたK線バーの上限は,exchange.SetMaxBarLen()
関数設定. 設定されていない場合のデフォルト制限は5000バーです. K線データが K線バー蓄積制限に達すると,K線バーを追加して最古のK線バーを削除することによって更新されます (例えば,キューイン/アウト).Trade
K線を生成するために,リアルタイムで
エクスチェンジのKラインインターフェースがページングクエリをサポートしている場合,複数のAPIリクエストがexchange.SetMaxBarLen()
線長を大きく設定する機能です
必要なのはexchange.GetRecords()
- バックテストシステムは,バックテストの時間範囲が開始される前に (デフォルトは5000で,バックテストシステムの設定とデータの量は返された最終数値に影響を与える) 初期Kラインデータとして,一定の数のKラインバーを事前に取得します. - 実際の取引中に得られたKラインバーの数は,取引所のKラインインターフェースから得ることができる最大量のデータに基づいています.
についてperiod
5 秒間でK線データを取得する要求です.period
パラメータは60で割り切れない (つまり,表示された期間は分で割り切れない). 基礎システムでは,exchange.GetTrades()
取引記録データを取得し,必要なK線データを合成します.period
パラメータが60で割り切れる場合,必要なK線データは最低1分間のK線データを用い合成されます (可能な限り,必要なK線データはより長い期間を使って合成されます).
バックテストシステムにおけるシミュレーションレベルのバックテストには,基礎K線周期の設定が必要である (バックテストシステムがレベルバックテストをシミュレートするとき,対応するK線データは,セットの基礎K線周期に従ってTickデータを生成するために使用される).戦略で得られたK線データの期間は,基礎K線周期よりも小さくならないことに注意すべきである.シミュレーションレベルのバックテストでは,バックテストシステムの各期間のK線データは,基礎K線期間のK線データから合成される.
についてC++
この言語は,自分のK線データを構築する必要がある場合,次のコード例を持っています.
#include <sstream>
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
// Output display: Records[10]
Log(r);
auto ma = TA.MA(r,10);
// Output display: [nan,nan,nan,nan,nan,nan,nan,nan,nan,450]
Log(ma);
}
支援しない取引所exchange.GetRecords()
機能:
機能名 | サポートされていないスポット交換 | サポートされていない先物取引 |
---|---|---|
GetRecords を取得する | ザイフ / コインチェック / ビットフライヤー | フューチャーズ_Aevo |
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.SetMaxBarLen exchange.SetMaxBarLen}, {@fun/Market/exchange.SetMaxBarLen exchange.SetMaxBarLen}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetDepth exchange.GetDepth exchange
FMZ Quant Trading プラットフォームのウェブサイトページで設定されたK-ライン期間を取得して,バックテストとライブ取引で戦略を実行します.exchange.GetRecords()
パラメータを通過することなく機能する.
数秒で整数値を表示します 番号
交換.GetPeriod (取得期間)
function main() {
// For example, the K-line period set on the website page of the FMZ Quant Trading platform during backtesting and live trading is 1 hour.
var period = exchange.GetPeriod()
Log("K-line period:", period / (60 * 60), "hours")
}
def main():
period = exchange.GetPeriod()
Log("K-line period:", period / (60 * 60), "hours")
void main() {
auto period = exchange.GetPeriod();
Log("K-line period:", period / (60 * 60.0), "hours");
}
{@fun/Market/exchange.GetRecords exchange.GetRecords} 取引先を チェックする
K線の最大長さを設定します
交換する.SetMaxBarLen ((n)
パラメータn
最大K線長を指定するために使用されます.
n
本当
番号
function main() {
exchange.SetMaxBarLen(50)
var records = exchange.GetRecords()
Log(records.length, records)
}
def main():
exchange.SetMaxBarLen(50)
r = exchange.GetRecords()
Log(len(r), r)
void main() {
exchange.SetMaxBarLen(50);
auto r = exchange.GetRecords();
Log(r.size(), r[0]);
}
についてexchange.SetMaxBarLen()
機能は暗号通貨戦略の実行時間には2つの側面に影響を与える:
{@fun/Market/exchange.GetRecords exchange.GetRecords} 取引先を チェックする
元のコンテンツを最後に戻すrest
現在の交換オブジェクトの要求 ({@var/EXCHANGE exchange}, {@var/EXCHANGE/exchanges exchanges}).
回答データrest
要求する
文字列
交換する.GetRawJSON()
function main(){
exchange.GetAccount();
var obj = JSON.parse(exchange.GetRawJSON());
Log(obj);
}
import json
def main():
exchange.GetAccount()
obj = json.loads(exchange.GetRawJSON())
Log(obj)
void main() {
auto obj = exchange.GetAccount();
// C++ does not support the GetRawJSON function
Log(obj);
}
についてexchange.GetRawJSON()
この機能は,実際の取引にのみサポートされています.C++
language.
{@var/EXCHANGE exchange} 交換する
交換対象の為替レートを取得します.
交換対象の為替レートの現在の値. 番号
エクスチェンジ.GetRate ((()
function main(){
Log(exchange.GetTicker())
// Set up exchange rate conversion
exchange.SetRate(7)
Log(exchange.GetTicker())
Log("Current exchange rate:", exchange.GetRate())
}
def main():
Log(exchange.GetTicker())
exchange.SetRate(7)
Log(exchange.GetTicker())
Log("Current exchange rate:", exchange.GetRate())
void main() {
Log(exchange.GetTicker());
exchange.SetRate(7);
Log(exchange.GetTicker());
Log("Current exchange rate:", exchange.GetRate());
}
もしexchange.SetRate()
換算率を設定するために呼び出されていなかった場合,exchange.GetRate()
この関数は,現在表示されている通貨 (quoteCurrency) に関するデータが変換されていないことを表示します.
通貨レートの値が,exchange.SetRate()
例えばexchange.SetRate(7)
価格情報,例えば,オート,深さ,および注文価格exchange
交換対象は,設定された為替レートに掛けることで変換されます.7
- わかった
もしexchange
呼び出し後,名義通貨としてUSDと交換に対応します.exchange.SetRate(7)
リアルマーケットのすべての価格は,CNYに近い価格に変換されます.7
この時点で,交換レートの値は,exchange.GetRate()
は7
.
{@fun/Trade/exchange.SetRate exchange.SetRate} {@fun/Trade/exchange.SetRate exchange.SetRate} {@fun/Trade/exchange.SetRate exchange.SetRate} {@fun/Trade/exchange.SetRate} {@trade.exchange.setRate} {@trade.exchange.setRate.setRate.setRate} {@fun/Trade.exchange.setRate.setRate} {@trade.exchange.setRate.setRate}
についてexchange.SetData()
戦略が実行されているときに読み込まれるデータを設定するために使用されます.
パラメータの後の文字列の長さvalue
JSONコード化
番号
exchange.SetData ((キー,値) を表示する
データ収集の名前
キー
本当
文字列
読み込むデータexchange.SetData()
配列のデータ構造があります. データ構造は,配列が要求するデータ形式と同じです.exchange.GetData()
外部データ要求時の機能,すなわち:"schema": ["time", "data"]
- わかった
価値
本当
配列
/*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() {
var data = [
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
exchange.SetData("test", data)
while(true) {
Log(exchange.GetData("test"))
Sleep(1000)
}
}
'''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"}]
'''
def main():
data = [
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
exchange.SetData("test", data)
while True:
Log(exchange.GetData("test"))
Sleep(1000)
/*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"}]
*/
void main() {
json data = R"([
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
])"_json;
exchange.SetData("test", data);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000);
}
}
パラメータのデータがvalue
形式は,data
タイムスタンプが表示されているように,1579622400000
時間に対応します2020-01-22 00:00:00
この時間後に実行すると,呼び出すexchange.GetData()
次のデータタイムスタンプの前にデータを取得する関数1579708800000
時間2020-01-23 00:00:00
受け取るものは[1579622400000, 123]
プログラムが実行され続けるにつれて,そのデータの内容,時間の変化,など,データ項目を項目ごとに取得します.次の例では,実行時に (バックテストまたはライブ取引),現在の瞬間はタイムスタンプに達または超過します.1579795200000
についてexchange.GetData()
函数が呼び出し,返した値は:{"Time":1579795200000,"Data":["abc", 123,{"price":123}]}
. "Time":1579795200000
対応する1579795200000
データで[1579795200000, ["abc", 123, {"price": 123}]]
. "Data":["abc", 123, {"price": 123}]
データに対応する["abc", 123, {"price": 123}]]
中[1579795200000, ["abc", 123, {"price": 123}]]
.
読み込まれるデータは,あらゆる計測可能な情報の戦略的定量評価に使用される経済指標,業界データ,関連指標などである.
{@fun/Market/exchange.GetData exchange.GetData} 情報を交換する
についてexchange.GetData()
この関数は,データ読み込みをexchange.SetData()
外部リンクによって提供されます.
データ収集の記録 オブジェクト
交換する.GetData (キー) 交換.GetData (キー,タイムアウト)
データ収集の名前 キー 本当 文字列 ミリ秒でキャッシュタイムアウトを設定します. リアルトレードでは1分キャッシュタイムアウトをデフォルトで設定します. タイムアウト 偽り 番号
/*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)
}
}
'''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"}]
'''
def main():
exchange.SetData("test", [[1579536000000, _D(1579536000000/1000)], [1579622400000, _D(1579622400000/1000)], [1579708800000, _D(1579708800000/1000)]])
while True:
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
/*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"}]
*/
void main() {
json arr = R"([[1579536000000, ""], [1579622400000, ""], [1579708800000, ""]])"_json;
arr[0][1] = _D(1579536000000);
arr[1][1] = _D(1579622400000);
arr[2][1] = _D(1579708800000);
exchange.SetData("test", arr);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000 * 60 * 60 * 24);
}
}
データを直接書き込むための電話です
/*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() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
}
}
'''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"}]
'''
def main():
while True:
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
/*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"}]
*/
void main() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Sleep(1000);
}
}
外部リンクを通じてデータを要求するサポート,要求されたデータのフォーマット:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
どこにschema
ロードされたデータ本体の各レコードのデータ形式で,["time", "data"]
入力データ形式に対応するdata
属性
保存されているものdata
アトリビュートとは,データの本体であり,各エントリにはミリ秒レベルのタイムスタンプとデータ内容 (JSONでコードできる任意のデータ) が含まれます.
Goで書かれたテストのためのサービスプログラム:
package main
import (
"fmt"
"net/http"
"encoding/json"
)
func Handle (w http.ResponseWriter, r *http.Request) {
defer func() {
fmt.Println("req:", *r)
ret := map[string]interface{}{
"schema": []string{"time","data"},
"data": []interface{}{
[]interface{}{1579536000000, "abc"},
[]interface{}{1579622400000, 123},
[]interface{}{1579708800000, map[string]interface{}{"price":123}},
[]interface{}{1579795200000, []interface{}{"abc", 123, map[string]interface{}{"price":123}}},
},
}
b, _ := json.Marshal(ret)
w.Write(b)
}()
}
func main () {
fmt.Println("listen http://localhost:9090")
http.HandleFunc("/data", Handle)
http.ListenAndServe(":9090", nil)
}
要求を受信した際にプログラムによる応答データ:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
試験戦略コード:
function main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
}
def main():
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
void main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"));
}
外部リンクのデータを取得するための呼び出し方法.
function main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data")) // The xxx part of the link is the code of the query data, here xxx is an example.
}
def main():
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"))
void main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"));
}
プラットフォームで作成されたクエリのデータ要求データデータ回答のデータ形式を要求する (時間,スキーマで記述されたデータフィールドを含む必要があります):
{
"data": [],
"schema": ["time", "data"]
}
exchange.GetData()
JSON オブジェクトが返されます.例えば:{"Time":1579795200000, "Data":"..."}
.
バックテストシステムでは,アクセスインターフェースを使用してデータを要求するときに,バックテストシステムは自動的に追加します.from
(秒で表示)to
(秒で表示される) 要求,パラメータなどperiod
(基となるK線期間,時間スタンプはミリ秒で) は,データを取得する時間枠を決定するために使用されます.
{@fun/Market/exchange.SetData exchange.SetData} データを交換する
についてexchange.GetMarkets()
交換市場情報を入手するために使用されます.
{@struct/Market Market} 構造を含む辞書 オブジェクト
交換.GetMarkets (ゲットマーケットズ)
function main() {
var markets = exchange.GetMarkets()
var currency = exchange.GetCurrency()
// Get the current contract code can also use exchange.GetContractType() function
var ct = "swap"
var key = currency + "." + ct
Log(key, ":", markets[key])
}
def main():
markets = exchange.GetMarkets()
currency = exchange.GetCurrency()
ct = "swap"
key = currency + "." + ct
Log(key, ":", markets[key])
void main() {
auto markets = exchange.GetMarkets();
auto currency = exchange.GetCurrency();
auto ct = "swap";
auto key = currency + "." + ct;
Log(key, ":", markets[key]);
}
フューチャー取引対象へのコール例:
/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
var tbl1 = {
type: "table",
title: "markets1",
cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
rows: []
}
var markets1 = exchange.GetMarkets()
for (var key in markets1) {
var market = markets1[key]
tbl1.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
}
for (var symbol of arrSymbol) {
exchange.GetTicker(symbol)
}
var tbl2 = {
type: "table",
title: "markets2",
cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
rows: []
}
var markets2 = exchange.GetMarkets()
for (var key in markets2) {
var market = markets2[key]
tbl2.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
}
LogStatus("`" + JSON.stringify([tbl1, tbl2]) + "`")
}
'''backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
tbl1 = {
"type": "table",
"title": "markets1",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
}
markets1 = exchange.GetMarkets()
for key in markets1:
market = markets1[key]
tbl1["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])
for symbol in arrSymbol:
exchange.GetTicker(symbol)
tbl2 = {
"type": "table",
"title": "markets2",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
}
markets2 = exchange.GetMarkets()
for key in markets2:
market = markets2[key]
tbl2["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])
LogStatus("`" + json.dumps([tbl1, tbl2]) + "`")
/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
json tbl1 = R"({
"type": "table",
"title": "markets1",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
})"_json;
auto markets1 = exchange.GetMarkets();
for (auto& [key, market] : markets1.items()) {
json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
tbl1["rows"].push_back(arrJson);
}
for (const auto& symbol : arrSymbol) {
exchange.GetTicker(symbol);
}
json tbl2 = R"({
"type": "table",
"title": "markets2",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
})"_json;
auto markets2 = exchange.GetMarkets();
for (auto& [key, market] : markets2.items()) {
json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
tbl2["rows"].push_back(arrJson);
}
json tbls = R"([])"_json;
tbls.push_back(tbl1);
tbls.push_back(tbl2);
LogStatus("`" + tbls.dump() + "`");
}
フューチャー交換オブジェクトを呼び出すexchange.GetMarkets()
バックテストシステム内の関数.任意の市場関数を呼び出す前に,GetMarketsは現在のデフォルト取引ペアの市場データを返します.市場関数を呼び出す後,すべての要求された多様性の市場データを返します.以下のテスト例を参照してください:
についてexchange.GetMarkets()
この関数は,取引品種の名前というキーで辞書を返します.例えば,取引ペアとしてフォーマットされたスポット修正の場合:
{
"BTC_USDT" : {...}, // The key value is the Market structure
"LTC_USDT" : {...},
...
}
フューチャー契約の取引では,単一の種類のための複数の契約がある可能性があるため,例えばBTC_USDT
永続契約や四半期契約などがあります.exchange.GetMarkets()
function は,契約コードと組み合わせたペアのキー名を含む辞書を返します.例えば:
{
"BTC_USDT.swap" : {...}, // The key value is the Market structure
"BTC_USDT.quarter" : {...},
"LTC_USDT.swap" : {...},
...
}
exchange.GetMarkets()
機能はライブ取引,バックテストシステムをサポートします.exchange.GetMarkets()
この関数は,取引所でオンライン取引されている品種のみの市場情報を返します.exchange.GetMarkets()
この機能はオプション契約をサポートしません.支援しない取引所exchange.GetMarkets()
機能:
機能名 | サポートされていないスポット交換 | サポートされていない先物取引 |
---|---|---|
GetMarkets を取得する | Coincheck / Bithumb / ビットフライヤー | – |
{@struct/市場市場}
についてexchange.GetTickers()
この関数は,交換されたティッカーデータ ({@struct/Ticker Ticker} 構造の配列) を取得するために使用されます.exchange
スポット取引対象である場合,すべての取引対の ticker データを返します.exchange
フューチャー取引対象の場合,すべての契約のティッカーデータを返します.
についてexchange.GetTickers()
この関数は {@struct/Ticker Ticker} 構造の配列をデータ要求に成功すると返し,失敗すると null を返します.
{@struct/Ticker Ticker}配列,ゼロ値
交換する.GetTickers ((()
function main() {
var tickers = exchange.GetTickers()
if (tickers && tickers.length > 0) {
Log("Number of tradable items on the exchange:", tickers.length)
}
}
def main():
tickers = exchange.GetTickers()
if tickers and len(tickers) > 0:
Log("Number of tradable items on the exchange:", len(tickers))
void main() {
auto tickers = exchange.GetTickers();
if (tickers.Valid && tickers.size() > 0) {
Log("Number of tradable items on the exchange:", tickers.size());
}
}
呼んでexchange.GetTickers()
市場データを集計する機能です
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
// Before requesting other trading pair market data, call Get Tickers
var tickers1 = exchange.GetTickers()
var tbl1 = {type: "table", title: "tickers1", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of tickers1) {
tbl1.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
// Request market data for other trading pairs
for (var symbol of arrSymbol) {
exchange.GetTicker(symbol)
}
// Call GetTickers again
var tickers2 = exchange.GetTickers()
var tbl2 = {type: "table", title: "tickers2", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of tickers2) {
tbl2.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify([tbl1, tbl2]) + "`")
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
tickers1 = exchange.GetTickers()
tbl1 = {"type": "table", "title": "tickers1", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
for ticker in tickers1:
tbl1["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
for symbol in arrSymbol:
exchange.GetTicker(symbol)
tickers2 = exchange.GetTickers()
tbl2 = {"type": "table", "title": "tickers2", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
for ticker in tickers2:
tbl2["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
LogStatus("`" + json.dumps([tbl1, tbl2]) + "`")
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
json tickerToJson(const Ticker& ticker) {
json arrJson;
arrJson.push_back(ticker.Symbol);
arrJson.push_back(ticker.High);
arrJson.push_back(ticker.Open);
arrJson.push_back(ticker.Low);
arrJson.push_back(ticker.Last);
arrJson.push_back(ticker.Buy);
arrJson.push_back(ticker.Sell);
arrJson.push_back(ticker.Time);
arrJson.push_back(ticker.Volume);
return arrJson;
}
void main() {
std::string arrSymbol[] = {"ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"};
auto tickers1 = exchange.GetTickers();
json tbl1 = R"({
"type": "table",
"cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
"rows": []
})"_json;
tbl1["title"] = "tickers1";
for (const auto& ticker : tickers1) {
json arrJson = tickerToJson(ticker);
tbl1["rows"].push_back(arrJson);
}
for (const std::string& symbol : arrSymbol) {
exchange.GetTicker(symbol);
}
auto tickers2 = exchange.GetTickers();
json tbl2 = R"({
"type": "table",
"cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
"rows": []
})"_json;
tbl2["title"] = "tickers2";
for (const auto& ticker : tickers2) {
json arrJson = tickerToJson(ticker);
tbl2["rows"].push_back(arrJson);
}
json tbls = R"([])"_json;
tbls.push_back(tbl1);
tbls.push_back(tbl2);
LogStatus("`" + tbls.dump() + "`");
}
スポット交換オブジェクトを使用し,exchange.GetTickers()
バックテストシステムにおける関数.任意の市場関数を呼び出す前に,GetTickersは現在のデフォルト取引ペアのティッカーデータを返します.市場関数を呼び出す後,すべての要求された多様性のティッカーデータを返します.以下のテスト例を参照してください:
支援しない取引所exchange.GetTickers()
機能:
機能名 | サポートされていないスポット交換 | サポートされていない先物取引 |
---|---|---|
GetTickers は | Zaif / WOO / Gemini / Coincheck / BitFlyer / ビボックス | フューチャーズ_WOO / フューチャーズ_dYdX / フューチャーズ_Deribit / フューチャーズ_Bibox / フューチャーズ_Aevo |
{@struct/TickerTicker}, {@fun/Market/exchange.GetTicker交換.GetTicker} 取引先を表示する
ログ 貿易