[TOC]
FMZの量化取引プラットフォームは,何をできるのか?
FMZ (発明者) 量化取引プラットフォーム量化取引の分野における最も専門的な量化コミュニティであり,ここで量化戦略を学び,書き,共有,購入,販売することができます. オンライン回顧,および模擬盤を使用して模擬取引を行う. 実行,公開,オブジェリアル盤. ほぼすべての主流のデジタル通貨交換をサポートします.
完全なチュートリアルシリーズ
画像教科書:
ビデオ・チュートリアル:
JavaScript
プログラミングと取引の基礎を持っている人は,プログラミングの基礎知識を学ぶのに1〜2週間しか要らないのに,約2日間で簡単な戦略を書き始めることができます.bilibili
ビデオ・チュートリアルもあります:発明家による量化取引プラットフォーム - 管理者概念
発明者 量化取引プラットフォーム - ウェブサイトの概要
発明者 量化取引プラットフォーム - 管理者の展開説明書
発明家による量化取引プラットフォーム - リアルディスクの作成
発明者の量化取引プラットフォーム - 戦略登録,コピーコード説明
発明者定量化取引プラットフォーム - 完全な戦略,パラメータ配置 輸入輸出説明書
発明者による量化取引プラットフォーム - デューティングツールとリモート編集機能ブログの記事やブログの記事やブログの記事やブログの記事やブログの記事などで,テレグラムグループ管理者,質問は通常すぐに回答されます.
ChatGPTのサポート開発
FMZの量化取引プラットフォームは,ChatGPTを開発支援ツールとしてアクセスし",コントロールセンター"のショートカットボーンで"ChatGPT"をクリックしてジャンプできます.ChatGPT ツールページ。
プログラミング言語はどんな言語で使えますか?
FMZ量化取引プラットフォームのサポートJavaScript
、TypeScript
、Python
、C++
、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
。
支持する協定
FMZ量化取引プラットフォームでは,戦略を FMZ量化口座所有者にのみ表示できる戦略を開発します.また,FMZ量化取引プラットフォームでは,戦略コードを完全にローカル化することができます.Python
策略コードにパッケージをロードし,策略のローカライゼーションを実現します.
Python
暗号のセキュリティ:
原因は?Python
言語はオープンソースで,反編成が非常に容易で,ポリシーが自作ではなく,レンタルされている場合,ポリシー漏洩が懸念されている場合,ポリシーが自己展開の托管者に実行され,子アカウントまたは全托管管理としてレンタルされる.
Python
暗号化戦略コード:
標準では,Python
策略コード作者が自社で暗号化しない場合,他人に貸し出されている場合,暗号化される.Python
ポリシー 開始 編集 コード 指定 自転車 レンタルPython
実行時に暗号化されているか. 暗号化されていることをサポートする.Python
翻訳は:Python 2.7
メディアは,Python 3.5
メディアは,Python 3.6
メディアは,
暗号化策略のコードは,暗号化策略の作成者自身が実行し,登録コードで他の人に使用しています.#!python
Python インタラクタ バージョンを指定するには,コマを使用します.,
暗号化命令を入力する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回復習時間点が生成され,実力盤レベルは実力的に収集される.tick
FMZの回転メカニズムは,戦略が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_week 、next_week 、quarter 、swap 。 |
HuobiDMについて | フューチャー取引所対象 | HuobiDMは,トークン・フューチャー (トークン・コントラクト) をサポートし,限られた取引対をサポートしています.BTC_USD ,ETH_USD 取引は通貨に対してUSD 特定の契約コードを設定します.exchange.SetContractType 機能) の後に,契約はコイン本位契約である. サポートされている契約コードは:this_week 、next_week 、quarter 、swap 。 |
ビットメックス | フューチャー取引所対象 | 取引対は: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であり,データ上限内には,回測時間の範囲を制限しない.GetDepth
、GetTrades
関数は,行事のデータを取得し,戻します. タイム軸上の特定の行事のデータ時に呼び出します.GetTicker
,GetTrades
,GetDepth
,GetRecords
,回測時間軸に時間を何度も押し移動しない ((次の市場データ瞬間にジャンプする触発をしない).);上記のいずれかの関数の繰り返し呼び出しでは,回測時間軸に時間を押し移動する ((次の市場データ瞬間にジャンプする).);回測時に実盤レベルの回測を使用すると,早すぎる時間を選択することは望ましくない.
リアルディスクレベルの再テストは現在サポートされています:
FMZ量化取引プラットフォームの回測システムパラメータ調整機能は,回測時に各パラメータの調整オプションの設定に基づいて調整します.
パラメータ組み合わせを生成し,それらのパラメータ組み合わせを繰り返す (すなわち,各パラメータ組み合わせを繰り返す). 策略パラメータは,**数値型 ((number) **のパラメータのみが,再測システムでパラメータ調整を行うことができる.
例えば,リセットページでパラメータを調整するオプションを設定します.
パラメータ調節パターンの復習:
策略編集のページでは",模擬回転"のページ ("回転システム") で,回転設定設定,策略パラメータなどのオプションを設定できます.回転設定は,回転の時間範囲,回転した取引所,回転のスライドポイント,手続費などの条件を設定するために使用されます. 策略パラメータは,政策設定のパラメータのオプションです. これらのパラメータを設定すると,設定された回転策略に従って保存することができます.
ありがとうございました.JavaScript
ソースファイルに保存する設定をクリックします.
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()
削除作業は,ユーザーによって実行され,最大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()
この関数はサポートされていません.Python
、C++
言語の戦略.
function main() {
var arr = []
Log(arr[6].Close)
}
function onerror() {
Log("错误")
}
# python不支持
// C++不支持
ニュースJavaScript
、Python
、C++
策略主ループで呼び出す必要があります.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
言語模板のカテゴリー:
Python
言語模板のカテゴリー:
C++
言語模板のカテゴリー:
テンプレートクラスバックリーの出力関数 輸出関数は,テンプレートクラスバリーのインタフェース関数であり,そのテンプレートクラスバリーのポリシーを引用して呼び出すことができる.輸出関数は,テンプレートクラスバリーの宣言と実装の例コードは以下のとおりである:
/*
-- 策略引用该模板以后直接用 $.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");
}
テンプレートクラスリバリのパラメータ テンプレートライブラリには独自のインターフェースパラメータを設定することもできます. テンプレートライブラリのパラメータは,テンプレートライブラリコードでグローバル変数として使用されます.
テンプレートクラスライブラリの設定パラメータ:
模板クラスライブラリコード:
$.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());
}
テンプレート・クラスを参照する
策略編集ページのテンプレート欄で引用を選択すると,策略を保存できます.
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
キーワードは♪
パラメータの種類:
変数 | 記述 | コメント | タイプ | デフォルト値 | 解説 |
---|---|---|---|---|---|
番号 | 数値型 | コメント | 数字型 (number) | 1 | C++の策略は浮点型である. |
文字列 | 文字列 | コメント | 文字列 (string) | こんにちは FMZ | デフォルト値は引数なしで入力し,入力はすべて文字列処理として処理される. |
コムボックス | 引き下げボックス | コメント | 引き下げボックス ((selected) | 1|2|3 | combox 変数は数値であり,下ろし枠のコントロールの選択を代表する目次インデックスであり,最初の下ろし枠の目次は1で,そのインデックス値は0で,順に類推される. |
ボール | 選択する | コメント | ブール型 ((true/false) | 本当 | 選択すると,変数bool は true,選択しない場合は,変数bool は false です. |
secret 文字列 | 暗号文字列 | コメント | 暗号文字列 ( string) | パスワード | 文字と同じ方法で使えば,暗号文字は暗号化されて送信され,明文伝送は行われない. |
number
、string
、combox
、bool
、secretString
。パラメータは設定に依存します:
参数"つを設定すると,その参数に基づく別の参数の選択が表示と隠しの両方を実現します.例えば,参数"つを設定します.numberA
この式は,この式を定義します.numberA
メディアは,isShowA
ブル・タイプの誤った決定numberA
画面を表示する.numberA
インターフェースのパラメータでは,変数は以下に設定されます.numberA@isShowA
。
選択をしないisShowA
参数についてnumberA
パラメータは隠されている. 下拉框制御のタイプのパラメータでは,パラメータは下拉框の任意のオプションに等しいかどうかを判断するために部分的に依存している.インデックス値│ │isShowA
パラグマーの例として,パラグマーの変数を設定するときに次のように書く.numberA@combox==2
。numberA
基本的には,combox
参数が3番目のオプションに表示されるか隠されるかを選択する (インデックス0は最初のオプション,インデックス1は2番目のオプション,インデックス2は3番目のオプションに対応する).
策略インターフェースパラメータ,インタラクティブコントローラー,テンプレートのパラメータグループ機能:
グループを構成するパラメータの記述の始まりのみで追加します.(?第一组)
グラフに示されているように,
策略を使用すると,パラメータをグループ化して表示します:
パラメータのデフォルト値は保存されます:
策略パラメータは図のように,リトーク時に,策略パラメータのデフォルト値を保存したい場合は,策略パラメータを変更した後,クリックできます.保存回测设置
ボタンをクリックします.
設定されたポリシーパラメータは,コード形式でポリシーに保存することもできます:
/*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線を表しています.BAR
。Record
その中の一つは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
ストラクチャー・アレイ.FrozenAmount
、Profit
、Margin
属性,取引所が提供するデータが統一されていないため,異なる取引所のオブジェクトが呼び出されます.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.000001
1ナ秒 = 1ナ秒.1e-6
微分秒も
警告:
使用中Python
言語策略を書くとき,相談間隔,時間待機の操作は使用されるべきである.Sleep(Millisecond)
関数、使用は推奨されませんPython
ありがとうございました.time
庫のtime.sleep(second)
戦略で使用されているからです.time.sleep(second)
この関数は,実行する時に,実行プログラムを実際に一定の秒間待機させる.second
設定された停止秒数である) のために,ポリシーの再起動が非常に遅い.
IsVirtual()
, 現在のポリシーが模擬復習のために実行されているかどうかを判断します. 返回値: ブール型.
模擬回線状態を返します.true
リアルディスクに戻るfalse
。
Mail(smtpServer, smtpUsername, smtpPassword, mailTo, title, body)
メールを送信する関数、参数値:参数はすべて文字列型である。返却値:ブル型,送信が成功true
。
smtpServer
メールを送信する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の解釈は,
スクワップこの例では,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 ((
職業養子家庭接続の試みが失敗したのは 接続された当事者が 適切な応答をしなかったからです
職業養子家庭ビット時代は支持しないのか?
小さな夢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の情報はネット上にあります.
売る問題を解決した?
ゼロ直接レコードまたは純粋な価格の配列になります.