発明者による量化APIドキュメント

作者: リン・ハーン小さな夢, 作成日: 2017-11-27 09:05:08, 更新日: 2023-07-12 16:47:31

[TOC]

基本情報

入り口

FMZの量化取引プラットフォームは,何をできるのか?

FMZ (発明者) 量化取引プラットフォーム量化取引の分野における最も専門的な量化コミュニティであり,ここで量化戦略を学び,書き,共有,購入,販売することができます. オンライン回顧,および模擬盤を使用して模擬取引を行う. 実行,公開,オブジェリアル盤. ほぼすべての主流のデジタル通貨交換をサポートします.

完全なチュートリアルシリーズ

画像教科書:

ビデオ・チュートリアル:

ブログの記事やブログの記事やブログの記事やブログの記事やブログの記事などで,テレグラムグループ管理者,質問は通常すぐに回答されます.

ChatGPTのサポート開発

FMZの量化取引プラットフォームは,ChatGPTを開発支援ツールとしてアクセスし",コントロールセンター"のショートカットボーンで"ChatGPT"をクリックしてジャンプできます.ChatGPT ツールページ

プログラミング言語はどんな言語で使えますか?

FMZ量化取引プラットフォームのサポートJavaScriptTypeScriptPythonC++PINE麦语言Blockly可视化デザイン戦略を書き出す.

支持TypeScript言語は,戦略の作成時に,JavaScript戦略コードの先頭に書き込む.// @ts-checkキーボードの右上に"TypeScript"ボタンをクリックすると,TypeScriptプラットフォームは自動的にコードを識別します.TypeScriptウェブのウェブページは,ウェブのウェブページのページを,

  • セキュリティの種類:TypeScriptステティック型チェック機能は,コードを書くときに潜在的なエラーを検出し,コードの質を向上させるのに役立ちます.
  • 自動補完コード:TypeScriptタイプシステムでは,コードを書くときに必要な属性や方法をより早く見つけることができ,開発効率を向上させることができます.
  • より明確なコード構造:使用TypeScript簡単に読みやすく理解できるように,コードを組織し,維持することができます.
  • 強力なオブジェクト指向プログラミング機能:TypeScriptインタフェース,クラス,汎用などの強力なオブジェクト指向プログラミング機能が提供され,より強力で再利用可能なポリシーコードを書くのに役立ちます.

これらの策略のデザイン言語の1つを熟知することが十分である. 設計策略は,コードを書く方法をサポートするだけでなく,視覚化モジュール作成策略 (Blockly) を使用することもできます. 視覚化モジュール拼接構築策略は,より直観的な方法で設計策略を採用し,コーディングを必要としません. 戦略設計に興味を培うのに非常に適しています.

Blockly視覚化チュートリアル:

設定するPython策略プログラムで使用するPython解説者

使用するPython管理者所在のシステム環境が同時にインストールされている場合,書き込みのポリシー,復習,または実装時にパイソン2そしてパイソン3実行するときに実行できます.Pythonメディアの報道は,#!python3#!python2絶対的な経路を指定することもできます. 例えば:#!/usr/bin/python3

管理者とは何か?

管理者複雑なデータリクエスト,データ受信,ネットワークリンク,ログ回線などの作業を担当する,あなたの取引戦略の実行者として理解できます. FMZ量化取引プラットフォームのウェブサイトにネットワーク障害が発生したとしても,ホストはあなたのサーバー上で動作します.Linuxウィンドウマック OSアンドロイドARM Linuxをベースにしたシステムなど.管理者ページLinuxホストのインストール手順とホストの更新手順■托管者が管理するリアルディスクログは,托管者のプログラムが所在するディレクトリに保存されます../logs/storage文書はdb3ありがとうございました.Sqliteデータベースのドキュメントに載せます.Sqlite管理ソフトウェアの直接編集は,これらの拡張機能のために,db3ファイル名で表示されます.ID

支持する協定

  • ブロックチェーンの資産:現在,50以上の主流のブロックチェーン資産 (デジタル通貨) 取引所がサポートされています.
  • 一般プロトコルへのアクセス:一般協定

戦略的セキュリティ

FMZ量化取引プラットフォームでは,戦略を FMZ量化口座所有者にのみ表示できる戦略を開発します.また,FMZ量化取引プラットフォームでは,戦略コードを完全にローカル化することができます.Python策略コードにパッケージをロードし,策略のローカライゼーションを実現します.

Python暗号のセキュリティ: 原因は?Python言語はオープンソースで,反編成が非常に容易で,ポリシーが自作ではなく,レンタルされている場合,ポリシー漏洩が懸念されている場合,ポリシーが自己展開の托管者に実行され,子アカウントまたは全托管管理としてレンタルされる.

Python暗号化戦略コード: 標準では,Python策略コード作者が自社で暗号化しない場合,他人に貸し出されている場合,暗号化される.Pythonポリシー 開始 編集 コード 指定 自転車 レンタルPython実行時に暗号化されているか. 暗号化されていることをサポートする.Python翻訳は:Python 2.7メディアは,Python 3.5メディアは,Python 3.6メディアは,

  • 暗号化策略のコードは,暗号化策略の作成者自身が実行し,登録コードで他の人に使用しています.#!pythonPython インタラクタ バージョンを指定するには,コマを使用します.,暗号化命令を入力するencrypt◎指定されていない場合Pythonバージョンを直接追加#!encrypt

    #!python,encrypt
    

    可能性は

    #!encrypt
    
  • 暗号化策略のコードは,登録コードで他人と共有するために使用されず,策略の作者自身が実行しています.

    #!python,not encrypted
    

    可能性は

    #!not encrypted
    

判断するPython暗号化策はコードを使用する際に有効かos.getenv('__FMZ_ENV__')文字列を返します"encrypt"解明が有効である. リアルディスクのみが有効で,再テストは暗号化されません.Python策略コード.

#!encrypt
def main():
    ret = os.getenv('__FMZ_ENV__')
    # 打印变量ret为字符串encrypt或者ret == "encrypt"为真,即代表加密生效
    Log(ret, ret == "encrypt")

鍵のセキュリティ

FMZ量化取引プラットフォームで設定されたアカウント情報や,ポリシーパラメータ内の暗号文字列などの機密データは,ブラウザ端で暗号化されている.これらの情報は,FMZ量化取引プラットフォームで保存されている暗号化情報 ("非明記データ") である.ユーザーのプライベートデバイスのみが使用できる暗号化が可能なため,機密データのセキュリティが大幅に向上している.もし,ポリシーコード,パラメータ設定,ポリシー説明などの情報に他の機密情報が含まれている場合は,そのポリシーを公開または販売しないでください.

  • プラットフォームは,取引所口座情報や秘密鍵などの機密情報をローカル化して設定することをサポートします.

    プラットフォームのエクスチェンジ情報を配置するページでは,すべての隠蔽された暗号テキストボックスコントローラが,管理者のローカルファイルに配置ファイル経路の方法で載せるのをサポートします.RSA KEY検証方法は,例えば,ホストプログラムに含まれるデバイスのローカルに機密情報を配置する方法を詳細に説明します.

    1、RSAの公開鍵,プライベートキーを作成します.PKCS#8公開鍵やプライベートキーなど,多くのツールが作成できます.openssl│ │ 2 取引所で作成RSA KEY作成時にアップしましたステップ1公開鍵は, 3 になります.ステップ1秘密鍵はtxtファイル形式は,管理者同級目録を保存し,管理者プログラムが所在する目録内の他の経路を保存することもできます. 4 FMZで取引所を配置する際に設定するAccess Key取引所で作成されたものRSA KEY│ │ 5. FMZで取引所を配置する際に設定するSecret Key編集ボックスに記入します第3ステップ管理者の同級目録にtxtファイルへの経路は,例えば,配置されたファイル名:rsaKey.txt管理者は,このファイルと同級目録に以下を記入します.file:///rsaKey.txt管理者の手順の目録の次のレベル目録rsa_keyこの記事へのトラックバック一覧です.file:///rsa_key//rsaKey.txt◎ 置かれた場合rsaKey.txtファイルが他のパスで,特定の設定をこのようにすると,このファイルがホスト等級ディレクトリまたは子ディレクトリにのみ置くことをサポートすることを注意する必要があります.

    詳細な手順は参照できます.ビデオ説明

検知システム

返信システムとは何か?

定量化取引戦略の設計を完了すると,どのようにあなたの戦略の論理,戦略の収益方向などの基本的なことを知ることができるのか? もちろん,我々は直接,真金銀を取引して市場に走る戦略を実行することはできません. 我々は,あなたの戦略を歴史的データでテストすることができます. あなたの戦略が歴史的データでどのように儲かるかを見てください.

復習システムのデータは正確ですか? 復習の結果は正確ですか?

FMZの量化取引プラットフォームは,回計モデルをリアル・ディスク・レベル リトートそしてアロマレベル再テスト◎リアルディスクレベルの回帰は,完全な歴史的データによる完全回帰;アナログレベルの回帰は,実際のK線データによる生成であるtickデータの再測定.両者は実際の歴史的データに基づいた再測定であるが,実際のディスクレベルの再測定はより正確で,結果はより信頼性がある.FMZ回測メカニズムについて説明しかし,リトークは単なる戦略の表れであり,過去のデータは将来の行情を完全に代表するものではありません. 歴史の行事が繰り返され,ブラック・スワンから飛ぶ可能性があります.

異なる言語戦略を復習する際の注意点:

JavaScriptそしてC++ブラウザ端で実行されます.ウェックスアプリFMZの量化取引プラットフォームは,ウェックスアプリ偽証券取引所) は,他のソフトウェア,ライブラリ,モジュールをインストールすることなく動作します.パイソン復習はホスト上で行われ,FMZの量化公共サーバーで復習することもできます.また,ユーザーの自社のホストで復習することもできます.実力盤と復習は,ホストがインストールしているシステムに依存します.パイソン公共サーバーでは,一般的なライブラリのみをサポートします.

復習システム内のデータ

FMZ量化取引プラットフォーム回測分別模擬レベル回測と実盤レベル回測は2種類,模擬レベル回測は底層K線周期に基づいて生成された模擬tick底辺のK線周期ごとに12回復習時間点が生成され,実力盤レベルは実力的に収集される.tickFMZの回転メカニズムは,戦略が1つのK線で複数回取引することを可能にし,取引価格のみを閉じる状況を回避し,より正確であり,回転速度を考慮し,詳細な説明は参考にすることができます.リンク

復習システムにおけるポリシーDEBUG 方法

JavaScript ポリシーの復旧は,Chrome ブラウザのDevTools でデバッグされます.

テストシステムでサポートされている取引所

  • 仮想通貨 (デジタル通貨)

    名前 タイプ 解説
    ビットフィネックス 現金取引対象 限られた取引をサポートします.BTC_USD,ETH_USD,LTC_USD取引の価格がUSDドルで価格です
    バイアン 現金取引対象 限られた取引をサポートします.BTC_USDT,ETH_USDT,ETH_BTC,LTC_BTCありがとうございました
    OKX 現金取引対象 限られた取引をサポートします.BTC_USDT,ETH_USDT,ETH_BTC,LTC_BTCありがとうございました
    コイン 現金取引対象 限られた取引をサポートします.BTC_USDT,ETH_USDT,ETH_BTC,LTC_BTCありがとうございました
    OKXフューチャー フューチャー取引所対象 限られた取引をサポートします.BTC_USD,ETH_USD取引は通貨に対してUSD特定の契約コードを設定します.exchange.SetContractType機能) の後に,契約はコイン本位契約である. サポートされている契約コードは:this_weeknext_weekquarterswap
    HuobiDMについて フューチャー取引所対象 HuobiDMは,トークン・フューチャー (トークン・コントラクト) をサポートし,限られた取引対をサポートしています.BTC_USD,ETH_USD取引は通貨に対してUSD特定の契約コードを設定します.exchange.SetContractType機能) の後に,契約はコイン本位契約である. サポートされている契約コードは:this_weeknext_weekquarterswap
    ビットメックス フューチャー取引所対象 取引対は:XBT_USD特定の契約コードを設定します.exchange.SetContractType機能) の後に,契約はコイン本位契約である. サポートされている契約コードは:XBTUSD
    ビンアンの先物 フューチャー取引所対象 限られた取引をサポートします.BTC_USDT,ETH_USDT取引は通貨に対してUSDT特定の契約コードを設定します.exchange.SetContractTypeこの関数は,USDTこの契約は,以下のような契約コードをサポートしています.swap
    デリビットオプション オプション取引所の対象 取引対は:BTC_USD,ETH_USD特定の契約コードを設定します.exchange.SetContractType任意のオプション契約のコードを設定する必要があります.

    復習システム 期貨取引所のオブジェクトは,戦略コードで交換取引対を一時的にサポートしていません.

模擬レベル

模擬レベル回測は,回測システムの底辺K線データに基づいて,あるアルゴリズムに従って,与えられた底辺K線Barの最高価格,最低価格,開盤価格,閉盤価格の数値構成の枠内で模擬される.tickデータをリアルタイムにtickインタフェースの要求時に返されるデータ.発明者の定量化模擬レベル回測メカニズム説明

リアルレベル

リアル・ディスク・レベル・レコーディングはリアルですtickレベルデータは,Barの時間配列に記載されています.tickレベルデータの戦略としては,リアルディスクレベルの回帰を用いることでより真似が近くなっている.tickリアルで記録されたデータであり,アロマ生成ではない. ※深度データ,市場取引記録データ再生をサポートし,カスタマイズ深度をサポートし,分数データをサポートする. ・実機レベルの分数データの最大サポートは50MBであり,データ上限内には,回測時間の範囲を制限しない.GetDepthGetTrades関数は,行事のデータを取得し,戻します. タイム軸上の特定の行事のデータ時に呼び出します.GetTickerGetTradesGetDepthGetRecords,回測時間軸に時間を何度も押し移動しない ((次の市場データ瞬間にジャンプする触発をしない).);上記のいずれかの関数の繰り返し呼び出しでは,回測時間軸に時間を押し移動する ((次の市場データ瞬間にジャンプする).);回測時に実盤レベルの回測を使用すると,早すぎる時間を選択することは望ましくない.

リアルディスクレベルの再テストは現在サポートされています

  • バイアン
  • OKX (OKX現貨)
  • HuobiDM (トークンフューチャー)

復習システムパラメータ調整

FMZ量化取引プラットフォームの回測システムパラメータ調整機能は,回測時に各パラメータの調整オプションの設定に基づいて調整します.

  • 最小値:限定参数の初期値である.
  • 最大値:制限参数が漸進的に変化した後の最大値である.
  • ステップ長さ:パラメータが変化量を増やします.

パラメータ組み合わせを生成し,それらのパラメータ組み合わせを繰り返す (すなわち,各パラメータ組み合わせを繰り返す). 策略パラメータは,**数値型 ((number) **のパラメータのみが,再測システムでパラメータ調整を行うことができる.

例えば,リセットページでパラメータを調整するオプションを設定します.

img

パラメータ調節パターンの復習:

img

復習を保存する

策略編集のページでは",模擬回転"のページ ("回転システム") で,回転設定設定,策略パラメータなどのオプションを設定できます.回転設定は,回転の時間範囲,回転した取引所,回転のスライドポイント,手続費などの条件を設定するために使用されます. 策略パラメータは,政策設定のパラメータのオプションです. これらのパラメータを設定すると,設定された回転策略に従って保存することができます.

img

ありがとうございました.JavaScriptソースファイルに保存する設定をクリックします.

img

JavaScript/Python/C++/麦语言ソースファイル形式への保存回帰設定は少し異なります:

/*backtest
start: 2021-06-26 00:00:00
end: 2021-09-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
'''backtest
start: 2021-06-26 00:00:00
end: 2021-09-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''
/*backtest
start: 2021-06-26 00:00:00
end: 2021-09-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

マン語:

(*backtest
start: 2021-06-26 00:00:00
end: 2021-09-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
*)

カスタマイズされたデータ源

システム使用GETメソッドは,外部データソースを復習するために,カスタム URL (公開アクセス可能な URL) を要求し,追加された要求パラメータは以下のとおりである.

パラメータ 意味 解説
シンボル 種名 BTC_USD_OKCoin_EN など
イード 取引所 OKCoin_ENなど
丸い 価格の精度 返される値が 1000 分の 1 になります.
フローンド 数値精度 返される数は 100 分の 1 です.
期間 bar周期 (ミリ秒) 例えば,60万のリクエストで,
深さ 深層層数 1-20
取引 データを分ける必要があるか true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false true/false
から 開始時間 Unix タイムバック
終了時間 Unix タイムバック

警告:

round与vround是为了避免网络传输过程中浮点数的精度丢失设计的两个参数,价格数据和成交量、订单量数据都采用整型传输。

この例では,Skype のデータとSkype のデータを組み合わせます.

http://customserver:80/data?symbol=BTC_USD_OKCoin_EN&eid=OKCoin_EN&round=3&vround=3&period=900000&from=1564315200&to=1567267200

返される形式は以下の2つの形式のいずれかでなければならない (システム自動認識):

通常のBarレベル回測

{
    "schema":["time","open","high","low","close","vol"],
    "data":[[1564315200000,9531300,9531300,9497060,9497060,787],[1564316100000,9495160,9495160,9474260,9489460,338]]
}

Tick級回測データ ((入札深度情報を含む,深度形式は[価格,量]の配列であり,複数のレベルの深度があり,asksは価格の順番,bidsは価格の順番)

{
    "schema":["time","asks", "bids","trades","close","vol"],
    "data":[[1564315200000,[[9531300,10]], [[9531300,10]],[[1564315200000,0,9531300,10]],9497060,787]]
}

解説

フィールド 解説
スキーマ data 行列の属性を指定する,大文字で区切る,time, open, high, low, close, vol, asks, bids に限定する
データ schemaで保存されたデータ列を表す配列

データ形式

フィールド 解説
要求/申し出 [価格,数量,...]
取引 [時間,方向 (0:買い,1:売),価格,数量...]

資金提供率は以下の通りです. 例えば,Binance Futures の再評価では,追加の資金率データが必要であり,カスタムなデータソースが提供される必要がある.例えば,Binance Futures の再評価では,以下の資金率データ構造が要求される.

{
	"detail": {},
	"symbol": "futures_binance.eth_usdt.funding",
	"schema": ["time", "open", "high", "low", "close", "vol"],
	"data": [
		[1582876800000, 25289, 25289, 25289, 25289, 0],
		[1582905600000, 30522, 30522, 30522, 30522, 0],
		[1582934400000, 40998, 40998, 40998, 40998, 0],
        ...
		[1626652800000, 198, 198, 198, 198, 0],
		[1626681600000, 691, 691, 691, 691, 0],                  // 相邻的周期间隔8小时
		[1626710400000, 310, 310, 310, 310, 0],                  // 币安资金费率8小时更新一次,资金费率数据为什么为310?
		[1626739200000, 310, 310, 310, 310, 0],                  // 因为和K线数据一样,为了避免网络传输过程中浮点数的精度丢,数据采用整型,所以需要根据round参数处理数据,处理后用于返回给回测系统的数据就为310
		[1626768000000, -41610, -41610, -41610, -41610, 0],      // 资金费率数据也可能为负值
		[1626796800000, -5125, -5125, -5125, -5125, 0],
        ...		
		[1627977600000, 10000, 10000, 10000, 10000, 0]
	]
}

復習システムからのデータ要求の例は:

http://customserver:80/data?symbol=futures_binance.eth_usdt.funding&eid=Futures_Binance&round=8&vround=5&depth=20&trades=1&custom=0&period=3600000&from=1360771200&to=1628006400

設定したデータソースの例:

データのソース,アドレス:http://xxx.xx.x.xx:9090/data設定されたデータサーバーで,golangで書き込み:

package main 
import (
    "fmt"
    "net/http"
    "encoding/json"
)

func Handle (w http.ResponseWriter, r *http.Request) {
    // e.g. set on backtest DataSourse: http://xxx.xx.x.xx:9090/data
    // r.URL: /data?depth=20&detail=true&eid=Binance&from=1566820800&period=900000&round=3&symbol=BTC_USDT_Binance&to=1569686400&trades=1&vround=5
    // response
    defer func() {
        // response data
        /* e.g. data
        {
            "schema":["time","open","high","low","close","vol"],
            "data":[
                [1564315200000,9531300,9531300,9497060,9497060,787],
                [1564316100000,9495160,9495160,9474260,9489460,338]
            ]
        }
        */
        ret := map[string]interface{}{
            "schema" : []string{"time","open","high","low","close","vol"},
            "data" : []interface{}{
                []int64{1564315200000,9531300,9531300,9497060,9497060,787},
                []int64{1564316100000,9495160,9495160,9474260,9489460,338},
            },
        }
        b, _ := json.Marshal(ret)
        w.Write(b)
    }()
}

func main () {
    fmt.Println("listen http://localhost:9090")
    http.HandleFunc("/data", Handle)
    http.ListenAndServe(":9090", nil)
}

テスト戦略はJavaScriptメディアは,

/*backtest
start: 2019-07-28 00:00:00
end: 2019-07-29 00:00:00
period: 1m
exchanges: [{"eid":"OKX","currency":"BTC_USDT","feeder":"http://120.24.2.20:9090/data"}]
*/

function main() {
    var ticker = exchange.GetTicker()
    var records = exchange.GetRecords()
    Log(ticker)
    Log(records)
}

復習システムでカスタマイズされたデータをグラフ化します.

メディアの報道は,

ローカル回検エンジン

FMZの量化取引プラットフォームがオープンJavaScript言語とPython言語のネイティブ回転エンジン,回転時に設定するサポート底辺のK線周期

ページを復元するショートカット

  • 策略編集ページと策略復習ページの切り替えのショートキット

    使用するCtrl + ,キー,スイッチ 再確認ページ,ポリシー編集ページを押しますCtrlキーボードを押して,キーボード.

  • キーボードをクリックすると,

    使用するCtrl + sキーボード,保存ポリシー.

  • 復習を開始するショートキット

    使用するCtrl + bキーで再検査を開始します.

コード説明

インプット関数

機能名 解説
main() 入力関数のために.
onexit() 正常退出時のスワイプ尾関数には,最大実行時間は5分で,宣言できないが,超時の場合エラーが返ってくる.中断する間違えました.
onerror() 異例退出を誘発する関数は,最大実行時間は5分であり,宣言できない.Python言語はC++言語で書かれたポリシーは,この関数をサポートしません.
init() 初期化関数では,実行開始時に最初に自動的に呼び出されるポリシープログラムが宣言されません.
  • 解説:
    • 検知システムはサポートされていませんonerror()この関数は,
    • リアルタイムで起動するonerror()この関数は,もう起動しません.onexit()この関数は,

一出 (onexit))

onexit()削除作業は,ユーザーによって実行され,最大5分かかります.

function main(){
    Log("开始运行, 5秒后停止,并执行扫尾函数!")
    Sleep(1000 * 5)
}

// 扫尾函数实现
function onexit(){
    var beginTime = new Date().getTime()
    while(true){
        var nowTime = new Date().getTime()
        Log("程序停止倒计时..扫尾开始,已经过去:", (nowTime - beginTime) / 1000, "秒!")
        Sleep(1000)
    }
}
import time 
def main():
    Log("开始运行, 5秒后停止,并执行扫尾函数!")
    Sleep(1000 * 5)

def onexit():
    beginTime = time.time() * 1000
    while True:
        ts = time.time() * 1000
        Log("程序停止倒计时..扫尾开始,已经过去:", (ts - beginTime) / 1000, "秒!")
        Sleep(1000)
void main() {
    Log("开始运行, 5秒后停止,并执行扫尾函数!");
    Sleep(1000 * 5);
}

void onexit() {
    auto beginTime = Unix() * 1000;
    while(true) {
        auto ts = Unix() * 1000;
        Log("程序停止倒计时..扫尾开始,已经过去:", (ts - beginTime) / 1000, "秒!");
        Sleep(1000);
    }
}

開始する

init()ユーザが初期化関数を実行するinit()実行開始時に実行されます.init()機能は,ポリシーで設計された初期化タスクを完了します.

function main(){
    Log("程序第一行代码执行!", "#FF0000")
    Log("退出!")
}

// 初始化函数
function init(){     
    Log("初始化!")
}
def main():
    Log("程序第一行代码执行!", "#FF0000")
    Log("退出!")

def init():
    Log("初始化!")
void main() {
    Log("程序第一行代码执行!", "#FF0000");
    Log("退出!");
}

void init() {
    Log("初始化!");
}

間違えました.

onerror()異常が発生したときに触発します.onerror()この関数はサポートされていません.PythonC++言語の戦略.

function main() {
    var arr = []
    Log(arr[6].Close)
}

function onerror() {
    Log("错误")
}
# python不支持
// C++不支持

クラシック戦略の枠組み

ニュースJavaScriptPythonC++策略主ループで呼び出す必要があります.Sleep()函数、回測時に回帰速度を制御する,実演では戦略回調の時間間隔を制御する,それによって取引所のAPIインターフェースへのアクセス要求頻度を制御する.、

  • デジタル通貨戦略の基本的枠組み例:

    function onTick(){
        //在这里写策略逻辑,将会不断调用,例如打印行情信息
        Log(exchange.GetTicker())
    }
    
    function main(){
        while(true){
            onTick()
            // Sleep函数主要用于数字货币策略的轮询频率控制,防止访问交易所API接口过于频繁
            Sleep(60000)
        }
    }
    
    def onTick():
        Log(exchange.GetTicker())
    
    def main():
        while True:
            onTick()
            Sleep(60000)
    
    void onTick() {
        Log(exchange.GetTicker());
    }
    
    void main() {
        while(true) {
            onTick();
            Sleep(60000);
        }
    }
    

    簡単な例として,もし私が1秒ごとに100の価格で取引所に1つの決済を掲示したければ,

    function onTick(){
        // 这个仅仅是例子,回测或者实盘会很快把资金全部用于下单,实盘请勿使用
        exchange.Buy(100, 1)
    }
    
    function main(){
        while(true){
            onTick()
            // 暂停多久可自定义,单位为毫秒,1秒等于1000毫秒
            Sleep(1000)
        }
    }
    
    def onTick():
        exchange.Buy(100, 1)
    
    def main():
        while True:
            onTick()
            Sleep(1000)
    
    void onTick() {
        exchange.Buy(100, 1);
    }
    
    void main() {
        while(true) {
            onTick();
            Sleep(1000);
        }
    }
    

テンプレート・クラス・ライブラリ

テンプレート・クラス・ライブラリFMZ量化取引プラットフォームで再利用可能なコードモジュールであり,ポリシーコードの一種である.テンプレート・クラス・ライブラリ発明者 (Quantitative Trading Platform) が現在ログインしているアカウントのポリシーデータベースにテンプレートクラスを作成すると,作成後,カテゴリを普通のポリシーに変更することはできません.

JavaScript言語模板のカテゴリー:

img

Python言語模板のカテゴリー:

img

C++言語模板のカテゴリー:

img

  • テンプレートクラスバックリーの出力関数 輸出関数は,テンプレートクラスバリーのインタフェース関数であり,そのテンプレートクラスバリーのポリシーを引用して呼び出すことができる.輸出関数は,テンプレートクラスバリーの宣言と実装の例コードは以下のとおりである:

    /*
    -- 策略引用该模板以后直接用 $.Test() 调用此方法
    -- main 函数在策略中不会触发, 只做为模板调试的入口
    */
    $.Test = function() {
        Log('Test')
    }
    
    function main() {
        $.Test()
    }
    
    def Test():
        Log("template call")
    
    # 导出Test函数, 主策略可以通过ext.Test()调用
    ext.Test = Test 
    
    // 策略引用该模板以后直接用 ext::Test() 调用此方法
    void Test() {
        Log("template call");
    }
    
  • テンプレートクラスリバリのパラメータ テンプレートライブラリには独自のインターフェースパラメータを設定することもできます. テンプレートライブラリのパラメータは,テンプレートライブラリコードでグローバル変数として使用されます.

    テンプレートクラスライブラリの設定パラメータ:

    img

    模板クラスライブラリコード:

    $.SetParam1 = function(p1) {
        param1 = p1
    }
    
    $.GetParam1 = function() {
        Log("param1:", param1)
        return param1
    }
    
    def SetParam1(p1):
        global param1
        param1 = p1
    
    def GetParam1():
        Log("param1:", param1)
        return param1
    
    ext.SetParam1 = SetParam1
    ext.GetParam1 = GetParam1
    
    void SetParam1(float p1) {
        param1 = p1;
    }
    
    float GetParam1() {
        Log("param1:", param1);
        return param1;
    }
    

    引用元テンプレート・クラス・ライブラリこの例の戦略コードは:

    function main () {
        Log("调用$.GetParam1:", $.GetParam1())
        Log("调用$.SetParam1:", "#FF0000")
        $.SetParam1(20)
        Log("调用$.GetParam1:", $.GetParam1())
    }
    
    def main():
        Log("调用ext.GetParam1:", ext.GetParam1())
        Log("调用ext.SetParam1:", "#FF0000")
        ext.SetParam1(20)
        Log("调用ext.GetParam1:", ext.GetParam1())
    
    void main() {
        Log("调用ext::GetParam1:", ext::GetParam1());
        Log("调用ext::SetParam1:", "#FF0000");
        ext::SetParam1(20);
        Log("调用ext::GetParam1:", ext::GetParam1());
    }
    

    img

  • テンプレート・クラスを参照する

    策略編集ページのテンプレート欄で引用を選択すると,策略を保存できます.

    img

内蔵構造

グローバル変数

交換

exchangeエクスチェンジオブジェクトとして見られる. ポリシーパラメータにデフォルトで追加された最初のエクスチェンジオブジェクトである. エクスチェンジとのすべての相互作用は,このオブジェクト内の関数によって実現される.

  • エクスチェンジオブジェクトを追加する

  • ディスクページに交換物件を追加

追加された交換オブジェクトは,コードに該当します.exchangeオブジェクト:

function main() {
    Log("实盘页面或者回测页面上,添加的第一个交易所对象名字:", exchange.GetName(), ",标签:", exchange.GetLabel())
}
def main():
    Log("实盘页面或者回测页面上,添加的第一个交易所对象名字:", exchange.GetName(), ",标签:", exchange.GetLabel())
void main() {
    Log("实盘页面或者回测页面上,添加的第一个交易所对象名字:", exchange.GetName(), ",标签:", exchange.GetLabel());
}
交換

記憶するデータとexchange取引所オブジェクトのすべての取引所オブジェクトの配列は,複数の取引所オブジェクトを含む可能性があります.exchanges[0]これはexchange

追加された取引所オブジェクトは,ポリシーコードに対応します.exchanges[0]exchanges[1]exchanges[2]≪..., といった推論≫

function main() {
    for(var i = 0; i < exchanges.length; i++) {
        Log("添加的交易所对象索引(第一个为0以此类推):", i, "名称:", exchanges[i].GetName(), "标签:", exchanges[i].GetLabel())
    }
}
def main():
    for i in range(len(exchanges)):
        Log("添加的交易所对象索引(第一个为0以此类推):", i, "名称:", exchanges[i].GetName(), "标签:", exchanges[i].GetLabel())
void main() {
    for(int i = 0; i < exchanges.size(); i++) {
        Log("添加的交易所对象索引(第一个为0以此类推):", i, "名称:", exchanges[i].GetName(), "标签:", exchanges[i].GetLabel());
    }
}
注文状況

Order構造にStatus属性.

定数名 定義 価値
ORDER_STATE_PENDING について 未完成 0
ORDER_STATE_CLOSED について 完成しました 1
ORDER_STATE_CANCELED 削除しました 削除しました 2
ORDER_STATE_UNKNOWN オーダー_ステート_未知 未知 (その他) 3

ORDER_STATE_UNKNOWN オーダー_ステート_未知呼び出すことができます.exchange.GetRawJSON()オリジナルの注文状態の情報を入手し,取引所のドキュメントを調べ,詳細の説明を見ることができます. 公式の定数名には,直接戦略コードでOrder構造Status属性の比較,同等かどうかを判断し,注文の状態を決定する.これらの定数名を印刷すると,これらの定数が表示されます.定数名対応する価値定数と定数の両方については,以下のような定数と定数の両方については,もはや説明されていない.

注文の種類

Order構造にType属性.

定数名 定義 価値
ORDER_TYPE_BUY について 支払い 0
ORDER_TYPE_SELL について 売り物 1
ポジションタイプ

Position構造にType属性.

定数名 定義 解説 適用する 価値
PD_LONG 複数の位置を表示します. デジタル通貨の先物使用exchange.SetDirection("closebuy")ポジションの方向を設定し,そのタイプのポジションを平らにする. デジタル通貨の先物 0
PD_SHORT 空白位置を表示する デジタル通貨の先物使用exchange.SetDirection("closesell")ポジションの方向を設定し,そのタイプのポジションを平らにする. デジタル通貨の先物 1
フューチャー開場方向

Order構造にOffset属性.

定数名 定義 価値
ORDER_OFFSET_OPEN について オープンオーダー 0
ORDER_OFFSET_CLOSE について 広場の注文 1
戦略パラメータ

策略コード内の策略インターフェースに設定された策略パラメータは,グローバル変数として表される.JavaScript言語では,ポリシーインターフェースに設定されたパラメータの値や変更を直接アクセスできます.Python戦略の関数内のグローバル変数を修正する際に使用するglobalキーワードは♪

パラメータの種類:

img

変数 記述 コメント タイプ デフォルト値 解説
番号 数値型 コメント 数字型 (number) 1 C++の策略は浮点型である.
文字列 文字列 コメント 文字列 (string) こんにちは FMZ デフォルト値は引数なしで入力し,入力はすべて文字列処理として処理される.
コムボックス 引き下げボックス コメント 引き下げボックス ((selected) 1|2|3 combox 変数は数値であり,下ろし枠のコントロールの選択を代表する目次インデックスであり,最初の下ろし枠の目次は1で,そのインデックス値は0で,順に類推される.
ボール 選択する コメント ブール型 ((true/false) 本当 選択すると,変数bool は true,選択しない場合は,変数bool は false です.
secret 文字列 暗号文字列 コメント 暗号文字列 ( string) パスワード 文字と同じ方法で使えば,暗号文字は暗号化されて送信され,明文伝送は行われない.
  • インターフェースパラメータは,ポリシー編集ページのコード編集領域の下のポリシーパラメータ領域で設定します.
  • インターフェースパラメータは,策略コード内のグローバル変数として存在し,つまりコード内のインターフェースパラメータを修正することができる.
  • インターフェースパラメータ 策略コード内の変数の名前:上の図の通りnumberstringcomboxboolsecretString
  • オプションの説明: インターフェースパラメータの名前は,ポリシーインターフェースにある.
  • 注記オプション: インタフェースパラメータの詳細説明が,マウスがインタフェースパラメータに停留しているときに,それに応じて表示される.
  • インターフェースのパラメータの種類.
  • デフォルト値オプション: このインターフェースパラメータのデフォルト値.

パラメータは設定に依存します: 参数"つを設定すると,その参数に基づく別の参数の選択が表示と隠しの両方を実現します.例えば,参数"つを設定します.numberAこの式は,この式を定義します.numberAメディアは,isShowAブル・タイプの誤った決定numberA画面を表示する.numberAインターフェースのパラメータでは,変数は以下に設定されます.numberA@isShowA

img

選択をしないisShowA参数についてnumberAパラメータは隠されている. 下拉框制御のタイプのパラメータでは,パラメータは下拉框の任意のオプションに等しいかどうかを判断するために部分的に依存している.インデックス値│ │isShowAパラグマーの例として,パラグマーの変数を設定するときに次のように書く.numberA@combox==2numberA基本的には,combox参数が3番目のオプションに表示されるか隠されるかを選択する (インデックス0は最初のオプション,インデックス1は2番目のオプション,インデックス2は3番目のオプションに対応する).

策略インターフェースパラメータ,インタラクティブコントローラー,テンプレートのパラメータグループ機能: グループを構成するパラメータの記述の始まりのみで追加します.(?第一组)グラフに示されているように,

img

策略を使用すると,パラメータをグループ化して表示します:

img

パラメータのデフォルト値は保存されます: 策略パラメータは図のように,リトーク時に,策略パラメータのデフォルト値を保存したい場合は,策略パラメータを変更した後,クリックできます.保存回测设置ボタンをクリックします.

img

img

設定されたポリシーパラメータは,コード形式でポリシーに保存することもできます:

/*backtest
start: 2020-02-29 00:00:00
end: 2020-03-29 00:00:00
period: 1d
args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]]
*/
'''backtest
start: 2020-02-29 00:00:00
end: 2020-03-29 00:00:00
period: 1d
args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]]
'''
/*backtest
start: 2020-02-29 00:00:00
end: 2020-03-29 00:00:00
period: 1d
args: [["number",2],["string","Hello FMZ.COM"],["combox",2],["bool",false],["numberA@isShowA",666],["isShowA",true]]
*/

データ構造

呼び出し時に返される原始語が付属します.JSONデータの原始化JSONデータを保存し,返したオブジェクトInfo属性. 復習時に,ある取引所のインターフェイスにアクセスしていないため,復習時に返されるデータには何もありません.Info属性,以下は各データ構造の主要な属性の説明である.

貿易

取引履歴 (自分以外の) をすべて取得するexchange.GetTrades()この関数は,

{
    Id      : 9585306,          // 交易记录ID,如果交易所接口没有提供订单ID则使用时间戳填充
    Time    : 1567736576000,    // 时间(Unix timestamp 毫秒)
    Price   : 1000,             // 价格
    Amount  : 1,                // 数量
    Type    : 0                 // 订单类型,参考常量里的订单类型,0即为ORDER_TYPE_BUY,ORDER_TYPE_BUY的值为0
}
ティッカー

市場はexchange.GetTicker()この関数は,

{
    Info    : {...},             // 请求交易所接口后,交易所接口应答的原始数据,回测时无此属性
    High    : 1000,              // 最高价,如果交易所接口没有提供24小时最高价则使用卖一价格填充
    Low     : 500,               // 最低价,如果交易所接口没有提供24小时最低价则使用买一价格填充
    Sell    : 900,               // 卖一价
    Buy     : 899,               // 买一价
    Last    : 900,               // 最后成交价
    Volume  : 10000000,          // 最近成交量,原则上现货成交量单位为交易币种(baseCurrency),期货成交量单位为合约张数。如果交易所接口没有提供此类数据则使用交易所接口现有的数据填充,例如可能为计价币(quoteCurrency)为单位的成交量
    Time    : 1567736576000      // 毫秒级别时间戳
}
記録

スタンダードOHLC構造は,K線を描くために使用され,指標計算分析も行われます.exchange.GetRecords()この構造の行列を返します.Record構造はK線柱,つまりK線を表しています.BARRecordその中の一つはTimeこのK線柱周期の開始時間.

{
    Time    : 1567736576000,     // 一个时间戳,精确到毫秒,与Javascript的new Date().getTime()得到的结果格式一样
    Open    : 1000,              // 开盘价
    High    : 1500,              // 最高价
    Low     : 900,               // 最低价
    Close   : 1200,              // 收盘价
    Volume  : 1000000            // 交易量,原则上现货成交量单位为交易币(baseCurrency),期货成交量单位为合约张数,如果交易所接口没有提供此类数据则使用交易所接口现有的数据填充,例如可能为计价币(quoteCurrency)为单位的成交量
}
順序

オーダー構造は,exchange.GetOrder()exchange.GetOrders()この関数は,exchange.GetOrders()この構造の行列または空行列 (もしない場合) が返されます.未完成の注文戻る[]任意の行列を表示します.

{
    Info        : {...},         // 请求交易所接口后,交易所接口应答的原始数据,回测时无此属性
    Id          : 123456,        // 交易单唯一标识
    Price       : 1000,          // 下单价格,注意市价单的该属性可能为0或者-1
    Amount      : 10,            // 下单数量,注意市价单的该属性可能为金额并非币数
    DealAmount  : 10,            // 成交数量,如果交易所接口不提供该数据则可能使用0填充
    AvgPrice    : 1000,          // 成交均价,注意有些交易所不提供该数据。不提供、也无法计算得出的情况该属性设置为0
    Status      : 1,             // 订单状态,参考常量里的订单状态,例如:ORDER_STATE_CLOSED
    Type        : 0,             // 订单类型,参考常量里的订单类型,例如:ORDER_TYPE_BUY
    Offset      : 0              // 数字货币期货的订单数据中订单的开平仓方向。ORDER_OFFSET_OPEN为开仓方向,ORDER_OFFSET_CLOSE为平仓方向
    ContractType : ""            // 现货订单中该属性为""即空字符串,期货订单该属性为具体的合约代码
}
マーケットオーダー

市場深度指数,つまりexchange.GetDepth()機能がデータ構造に戻る申し出尋ねる数列内の要素のデータ構造.

{
    Price   : 1000,              // 价格
    Amount  : 1                  // 数量
}
深さ

市場の深さ,exchange.GetDepth()この関数は,

{
    Asks    : [...],             // 卖单数组,MarketOrder数组,按价格从低向高排序
    Bids    : [...],             // 买单数组,MarketOrder数组,按价格从高向低排序
    Time    : 1567736576000      // 毫秒级别时间戳
}
口座

アカウント情報exchange.GetAccount()関数は戻します. 戻した構造内のデータは,現在設定されている取引対,設定された契約コードに関連しています.

{
    Info            : {...},     // 请求交易所接口后,交易所接口应答的原始数据,回测时无此属性
    Balance         : 1000,      // 可用计价币数量,现货中如果交易对是BTC_USDT,Balance指的是当前可用USDT数量。U本位期货合约中Balance指的是可用保证金USDT的数量
    FrozenBalance   : 0,         // Balance表示的资产用于挂单的冻结数量
    Stocks          : 1,         // 可用交易币数量,现货中如果交易对是BTC_USDT,Stocks指的是当前可用BTC数量。币本位期货合约中Stocks指的是可用保证金的币(baseCurrency)的数量
    FrozenStocks    : 0          // Stocks表示的资产用于挂单的冻结数量
}
位置

取引先の情報には,exchange.GetPosition()この関数はここに戻ります.Position構造数列

{
    Info            : {...},     // 请求交易所接口后,交易所接口应答的原始数据,回测时无此属性
    MarginLevel     : 10,        // 持仓杆杠大小,如果交易所接口没有提供该数据则通过计算填充,可能会有误差
    Amount          : 100,       // 持仓量,持仓合约张数,通常是正整数。注意每个交易所的合约乘数、价值等合约规格可能不一样,下单规则也可能不一样,例如币安合约可以0.1张下单
    FrozenAmount    : 0,         // 仓位冻结量,用于平仓挂单时的临时冻结仓位数量
    Price           : 10000,     // 持仓均价,原则上该属性为仓位总体的平均价格(不参与结算),如果交易所接口没有提供该数据则用交易所接口现有的持仓均价填充(参与结算)
    Profit          : 0,         // 持仓浮动盈亏,原则上为持仓的未实现盈亏,如果交易所接口没有提供该数据则用交易所接口其它盈亏数据填充,盈亏数值的单位和当前合约保证金的单位相同
    Type            : 0,         // PD_LONG为多头仓位,PD_SHORT为空头仓位
    ContractType    : "quarter", // 合约代码,具体可以参看SetContractType函数描述中传入的参数
    Margin          : 1          // 仓位占用的保证金,如果交易所接口没有提供该数据则使用0填充
}

デジタル通貨の先物については注意が必要です.exchange.GetPosition()この関数は,Positionストラクチャー・アレイ.FrozenAmountProfitMargin属性,取引所が提供するデータが統一されていないため,異なる取引所のオブジェクトが呼び出されます.exchange.GetPosition()インターフェイスで返されるデータの定義は異なるかもしれない.例えば,ある取引所が保有しているデータには,ポジションフリーズのデータがない.FrozenAmount計算が必要な場合,いくつかのデータを使用できます.Info属性内の原始データ計算解析.

市場

取引品種の市場情報は,exchange.GetMarkets()この関数には,Market構造辞書

{
    Symbol          : "btcusdt",       // 该交易品种在交易所的原始名称
    BaseAsset       : "BTC",           // baseCurrency 交易币,统一大写
    QuoteAsset      : "USDT",          // quoteCurrency 计价币,统一大写
    TickSize        : 0.01,            // 价格最小变动数值
    AmountSize      : 0.01,            // 下单量最小变动数值
    PricePrecision  : 2,               // 价格精度,表示价格精确到2位小数
    AmountPrecision : 3,               // 下单量精度,表示下单量精确到3位小数
    MinQty          : 0.001,           // 最小下单量
    MaxQty          : 1000,            // 最大下单量
    MinNotional     : 5,               // 最小下单金额
    MaxNotional     : 9999999,         // 最大下单金额
    CtVal           : 100,             // 合约价值
    Info            : {...}            // 交易所该品种的原始数据
}

取引所によって市場情報データのサポートが異なるため,取引所がサポートしていないフィールドは無視される.上記の各フィールドのデータ評価は,取引所のインタフェースの原始データから取られ,具体的には問い合わせることもできます.Infoフィールドの内容.

グローバル関数

バージョン

Version(), システムの現在のバージョン番号を返します. 返した値: 文字列タイプ.

睡眠 (ミリ秒)

Sleep(Millisecond)休止関数,プログラムを一時停止する. 参数値:Millisecond数値型である.パラメータはミリ秒数である.例えば:Sleep(1000)眠りにつくために1秒. 睡眠時間1ミリ秒未満の操作をサポートします.Sleep(0.1)◎ サポートする最小参数0.0000011ナ秒 = 1ナ秒.1e-6微分秒も

警告: 使用中Python言語策略を書くとき,相談間隔,時間待機の操作は使用されるべきである.Sleep(Millisecond)関数、使用は推奨されませんPythonありがとうございました.time庫のtime.sleep(second)戦略で使用されているからです.time.sleep(second)この関数は,実行する時に,実行プログラムを実際に一定の秒間待機させる.second設定された停止秒数である) のために,ポリシーの再起動が非常に遅い.

IsVirtual (バーチャル)

IsVirtual(), 現在のポリシーが模擬復習のために実行されているかどうかを判断します. 返回値: ブール型. 模擬回線状態を返します.trueリアルディスクに戻るfalse

郵便局から

Mail(smtpServer, smtpUsername, smtpPassword, mailTo, title, body)メールを送信する関数、参数値:参数はすべて文字列型である。返却値:ブル型,送信が成功truesmtpServerメールを送信するsmtpサービスsmtpUsername郵便箱の口座は,smtpPasswordメールボックスへのSMTPパスワード (メールボックスへのログインパスワードではありません)mailToメールを受け取るメールのアカウントは,titleメールのタイトルは,bodyメールの内容は,例えば:

function main(){
    Mail("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")
}
def main():
    Mail("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")

もっと

QQ89520C関数は,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C関数で,_C_関数で,_C_関数で,_C_C_関数で,_C_C_関数で,_C_C_関数で,_C_C_C_関数で,_

ハワイ ハワイ_C ((function, args...) のデフォルトは3sですか?デフォルトで_CDelay ((1000) を直接_C ((function, args...) の前に設定することができますか?一度設定できますか?

ランチャイエクラスター:もし1000個のボットを同時に ストレスを感じずに作るとしたら 複数の管理者が作られ 課題を分散できます 複数の管理者を構築して,タスクを分散させる方法.

ワングイ1log ((talib.help (('MACD'));jsでしか使えない.pythonではtalib.help属性がない...

cjz140_C (関数, args...) と Sleep (関数) の違いは?

3263243ySetErrorFilter の後に ErrorFilter を削除するにはどうすればよいですか?

QQ47898077データベースの利用は可能でしょうか?

QQ47898077交換対象に定義された新しいクラスを継承する場合は,父クラスは何を入力すべきですか?

エタヌウローカル・デュッキング・ツールはありますか?

ペンギンこのサイトは,インターネットのインターネット・サービスです.

ペンギンsell の関数が灰色になっているのは,by が使えなくなっていることを表すためでしょうか.

ペンギンsell の関数が灰色になっているのは,by が使えなくなっていることを表すためでしょうか.

ペンギン言語能力が低いので,

ペンギン言語能力が低いので,

Don.平均線を書き換えるには,

ツィートルテ市場価格で買い換える. 買い換える (1000) は,失敗した場合に返されるものは何ですか?

ニン公子この新しいフォントは素敵です.

河馬Bitmexのテストネットワーク ((testnet.bitmex.com) もAPIインターフェイスがありますが,現在,取引所はBitmexのメインステーションのみを選択できます.APIドキュメントの住所はhttps://testnet.bitmex.com/app/apiOverviewです. どうしたら支援できるでしょうか?

エクシジンvar ret1 = exchanges[0].IO (("api", "future_estimated_price", "symbol=btc_usd"); Log (('ok 期貨 預期 配送 価格', ret1); https://dn-filebox.qbox.me/d1ed268c1e75753c5d289447d279aa9d81e41b5f.png 取引所の機能インターフェースを呼び出し,エラーを表示する場合は,なぜですか?

アレン・フロストラインrealTickerとTickerの違いは何ですか? 最近,リベリー策略が書き換えられ,両 API が同時に登場していますが,前者については言及されていないようです.

ビジョンPython の開発者として,API 文書に何が書かれていると思いますか? フィールド関数インターフェースが奇妙に見えるので,githubpageやreaddocsのように文書を書くことができますか?

アレン・フロストラインGetAccount: [EAPI:Rate limit exceeded] どうしたらいいか知りたいです. QQは持っていません.微信グループなどありますか? ありがとうございました.

zhjx2314StochRSI はサポートされていませんが,すぐに追加できますか?

イーフグPython ポリシーのリアルディスクでは,スクリプトは自分の Ali Cloud サーバーか botvs 集群か?

イーフグPythonのどのバージョンを使っていますか?

じっとしてGetFeeの解釈は,がFee構造を返し,単語を省略しているはずである.

スクワップこの例では,JSでタリブを呼び出す方法があります.

イーフグPythonのドキュメントを検索する

Wmjbs123 について策略編集のコードの背景は黒か白か? 刺眼,夜にコードを書く,近視が容易

Don.ロボットの微信の推し込みの概要を設定するにはどうすればいいですか?

数字狂い注文 (Order) 構造に,取引の均等価格のフィールドを追加できますか?

小さいことGetOrders: すべての未完成の注文を取得し,Order配列構造を返します. 中国のビットコイン取引ETHでは,最近10項のみ返します.

イーフグ統計的確率論の数学関数は何処で使えますか?

ジーバンこの関数の返した値は何でしょうか?

祖母が言ったLogReset はすべてのログを空にして,保存する記号を指定する数字参数を持つことができます. ブログの最新記事を削除するにはどうすればいいですか?

エドワード・ギューtalib のCORRE 関数は移植されていないように見えるか?

貧乏山の指標参照機能がないようです!

小さいものk線時間の読み取りは,どのように現在時間に翻訳されます? ああ,わからない,あまりにも長い,解決,ありがとう.

小さいもの列の数字を削除する方法,私は records.remove ((records[0]) と使っています.

スネークイユ通常,K線は時間K線で,日K線のATRはどのように呼び出すか.

スネークイユ通常,K線は時間K線で,日K線のATRはどのように呼び出すか.

57278863伝統的なフューチャーで価格を得たり,下注したりする方法について学びましょう.

キリン伝統的先物取引の例を!

小さいもの伝統的な先物取引の例を書いてください.

小さいもの複数の空单を同時に保持しているとき,保有状態をどのように印刷するか,私の印刷方法は[object object][object object],多单と空单保有状態をどのように取得するか,またGetTickerもあります. その週,次の週,および四半期をどのように取得するか,その週の価格,括弧の当週,次の週,および四半期を私は書いています.

エクシジンフューチャー取引所はGetTickerで取引を入手できますか? そのタイプの契約取引を返します (前週,次週...)

売るストックRSIの指標は?

モモックスCancelOrder ((orderId) 注文番号に基づいて注文をキャンセルし,trueまたはfalseを返します. true=セルが成功してキャンセルされましたか?

モモックス_G(K,V) 保存可能なグローバル辞書表 この方法で保存されるグローバル変数は,異なるポリシー間のデータ共有に使用できますか?

フルフィー3D人気急上昇

ゼロログプロフィットリセットで収益ログをリセットできます.

xcy直接EAをコピーして使えますか?

スイロンマンこのプラットフォームは素晴らしい 素晴らしい グループでの交流が多くなった

小さいものこの言語は,どんな言語で,学習資料があるのでしょうか?

Jxhbtc"データエラー" "週間 ロボットに接続できず 解決方法

ほら価格の計算は,決済価格を計算するだけのものですか?

btcrobot についてこんにちは 世界

小さな夢_C関数は,成功するまで,無意識に再挑戦します.

小さな夢Pythonのタリブライブラリをインストールする必要があります.https://www.botvs.com/bbs-topic/669 この記事を参照してください.

小さな夢スリープは,プログラムが何もしず,パラメータが設定されるのを待つミリ秒数, _Cは,パラメータを1回再呼び出し,転送された関数である.

小さな夢継承せずに,JSが直接オブジェクトに包み込まれます. {name: "新しいオブジェクト", old_exchange : exchange[0],...... }

小さな夢ローカルエディタ リモートシンクロプラグイン,基本的にはローカルエディタ リモートデュッキング.

小さな夢QQグループに来て,^^ 簡単に議論できます~

小さな夢APIのドキュメントでは,この関数が灰色で表示され,青色で表示され,説明が多くないことを意味する.

小さな夢ES6はサポートされていません ^^

小さな夢QQのグループへ行って,質問を説明して,私は答えます ^^

小さな夢メールの返信は"エラー"で,注文はしません. (実際は買おう,お金が足りない!)

ツィートルテOKCoinは,持っていた人民幣よりも多く購入された場合,何が返されますか?

小さな夢OKフューチャーで注文番号を返します.

ゼロすでに実行時に取引ペアを切り替えるサポートがあり,最新のホストをダウンロードする必要があります.サポート Bter/Poloniex 詳細 API 文書 取引関数のバーの説明 (ブラウザキャッシュを空にして,表示できない場合は刷新)

小さな夢QQ,私はあなたの質問を探します.

職業養子家庭ホストのIPを設定します. このIPは,ホストのIPを設定します.

小さな夢サーバーが応答していない.API KEYのリクエスト時にIPアドレスを設定しますか?

職業養子家庭これは恥ずかしいです.... 接続されたパーティが時間内に適切に応答しなかったため,または接続されたホストが応答に失敗したため,接続の試みが失敗した wsarecv: 2017-05-23 21:08:24 ビット時代 間違い GetAccount:タイムアウト 2017-05-23 21:08:02 ビット時代 誤り GetAccount:タイムアウト 2017-05-23 21:07:40 ビット時代 エラー GetAccount:タイムアウト 2017-05-23 21:07:20 再起動 IPのホワイトリストの問題なのか?

小さな夢取引所のサーバーは応答せず,TCPプロトコルは3回握手も確立されていない.

職業養子家庭A connection attempt failed because the connected party did not properly respond after a period of time (接続された当事者が時間経過後に適切に応答しなかったため,接続の試みが失敗しました)

小さな夢こんにちは! exchange.IO ((api, ApiName, Args) はサポートされていません. https://www.botvs.com/bbs-topic/812を参照してください.

職業養子家庭接続の試みが失敗したのは 接続された当事者が 適切な応答をしなかったからです

職業養子家庭ビット時代は支持しないのか?

小さな夢https://dn-filebox.qbox.me/a709b30c6cc0a3565234b9e0c99b073f7ba8b454.png ブログに載っているのは,

ニン公子例えば,私はpoloniexの全通貨取引をしたいのですが,BOTvsがサポートする通貨はわずかです.

小さな夢交換.IO を呼び出すことができます.

ニン公子アカウントの認証が必要なAPIはどうでしょう?

小さな夢アカウント認証を必要としないAPIは httpQuery (BotVSドキュメントを参照してください) を使用できますが,実際の取引APIにはアクセスが必要です.

小さな夢HttpQueryのAPIのパラメータを転送するには,https://www.okcoin.com/api/v1/future_estimated_price.do?symbol=btc_usdを使用できます. 口座の検証を必要としない取引所のAPIは,プラットフォーム上のHttpQuery関数を直接使用し,アカウントに関連した APIは IOAPIを使用します (IOはこれらの認証を必要としない取引のAPIをサポートしません). 投稿: https://www.botvs.com/bbs-topic/850

ビジョン素晴らしいAPIドキュメントを期待しています.

小さな夢リアルティッカーのAPIはどこで見られるの?

小さな夢https://dn-filebox.qbox.me/fe1a6f5563ed43a5357f858ecf8a50239619228e.png APIドキュメントはJavaScript言語で記述され,python版は交流コミュニティのページのトップに記述されている.

ゼロこんにちは,ご提案ありがとうございます. APIのドキュメントが現在再構築中です.

小さな夢"こんにちは"は,アクセス頻度が制限を超えていることを示しています. https://dn-filebox.qbox.me/a09498920d04cac62624b7438a058d2098d8fb00.png 戦略ではSleep ((1000) 機能を使用していますか? この1000は,プログラムがラウンドごとに1秒間停止させ,自律的に設定できます. 目的はプログラムのアクセスAPIの頻度を制御することです.

小さな夢https://dn-filebox.qbox.me/c29ab7fc279e1b758355f137907cf52dc8257df6.png 私の個人的に書いたSTOCHRSIの指標は,OKと比較されているが,速度が少し遅い,最適化が待っています.

ゼロbotvs で提供されるサーバーでの復習または自社のホストのサーバーでの復習を選択できます.バージョンは2.7.5です.

小さな夢投稿者: 藤井 さん

小さな夢背景のスタイルを自分で設定できます.

小さな夢Pythonのドキュメントが書き込まれています.

小さな夢タリブ・ライブラリのサポートも可能です.

ハズグッド48 https://www.botvs.com/bbs-topic/276

小さな夢戦略広場には,https://www.botvs.com/strategy/15098という例があるようです.

ゼロ取引所がサポートするオーダーのAvgPrice属性にアクセスできます. サポートしない取引所は0の属性になります.

イーフグ引用された資料は?

ゼロmathjs が満足できない場合は,第三者ライブラリをコピーインポートするポリシーを検索するだけです. 編成速度のために,システムはごく少数のライブラリしか内蔵していません.

小さな夢グループで問題がある場合,Mをすることができます~私は基本的にオンラインです.

ジーバンありがとうございました

小さな夢暗号通貨取引のデータベースの コード解析の解説を見ることができます. $Cross関数の解説があります.

ゼロ最近の記事は削除できませんが,最新の記事のみを保存できます.

キリンポジション[i] を使って,すべての保持を取得するには,ポジションは数列である.

ニン公子exchange.GetRecords ((PERIOD_D1)) を取得する

キリン私の伝統的なフューチャーとは"GetAccount: not login",パスワードを間違えてない,ログインできない"というものです.

ゼロデフォルトでは SetContractType が求められます.

ゼロこの true は,取引所が返したキャンセル命令の返し値です. しかし,実際にキャンセルした場合は,取引所内部での処理によって異なります.

モモックス3q

ゼロ暫くの間は別れられる.

シュアンシュアンMT4の専用サイトです.

ゼロJavascriptの情報はネット上にあります.

売る問題を解決した?

ゼロ直接レコードまたは純粋な価格の配列になります.