データ再生機能に基づいて開発された線形ハングシングルストリーム戦略

作者: リン・ハーン , 作成日:2019-12-13 17:13:07, 更新日:2023-10-17 21:21:36

img

前言

取引は芸術であり,芸術はインスピレーションの源であると言われています. そこで,今日,発明者のデータ再生機能を量的に活用して,自分の取引インスピレーションを掘り出す方法を皆さんと共有したいと思います.

取引のインスピレーションとプレッシャー

通常,私たちが"インスピレーション"と呼ぶのは,人々が思考過程で瞬時に創造的な状態を起こすことです.トレーダーにとって,私たちの脳の左半球は,戦略策定,資金配置,パラメータ設定などの一連の規則の制定を完了しています.

多くの人が,円盤感覚という言葉を聞いたことがある.これは,今起こっていることが,まるで既知のものであるかのように,はっきりしないような感覚である.取引の際に,この6感のような直感は,論理的推論や分析なしに,市場の将来の動きを予知するものの,取引者が購入または売却の決定を下すように促す.

"インスピレーションを得る方法"

外見では,盘点感覚は,市場を支える無敵な神秘的な才能である. 実際,盘点感覚は,主観的な取引経験に対する脳の要約であり,長年の盘点を通して理解された明な先入観的な感覚である.

厳密に言えば,インスピレーションは,完全には,素直さとは等しくはないが,市場を何千回練習した後,市場についてより深い理解を持つことは,戦略開発の時に心得られるだろう. だから,この才能を得たいと,より多くの取引戦略を開発したいと望むなら,誰も,手熟な者であり,大量取引によってのみ,自分の取引システムを完璧にすることができます.

しかし,国内商品先物や株式は1日数時間しか取引時間がなく,リアルタイムの取引から自分の見盤体験を向上させ,自分の収益モデルや取引ルールを形成し,自分の条件反射を潜在意識で訓練するだけで,心不全であることが明らかになる.長時間のコストに加えて,ほとんどのトレーダーは資金損失のコストを負う.この問題を解決するために,発明者は量的にデータ再生機能を開発した.

データの再生をどのように使うか

データ再生機能は,取引所取引時間の制限なしに訓練され,複数の商品先物やデジタル通貨の種類をサポートし,市場が手動回帰したり,自動的に回帰したりできる.また,歴史的な市場開始時間と回帰速度を自由に設定することができます.他のソフトウェアが一般的にK線データ再生方法を採用していることに比べて,発明者はTickレベルのデータ再生方法を用いて量化しました.

開発者による定量化サイトfmz.com) を登録してログインし,制御センターのデータ探索をクリックすると,データ再生機能のページが表示される. 4つのオプションボックスと1つの選択ボタンがあります. まず,選択ボタンにクリックすると,リアルディスク再生をサポートする種類のみが表示されます. 次に,左上部で再生する種類を選択し,次に,裏の2つのオプションボックスでデータの開始時間を選択し,次に,データのタイムサイクルを選択して,最後に,データ再生機能を開くために右端のGoボタンをクリックします.

img

データラベルの下には3つの区画があります. 左側には取引履歴があり,ここで交付されたすべての注文が時間順に表示されています. 中には20フィートの深さの買い物・販売のリストデータがあります. 右側にはデータ再生の制御エリアがあり,メディアプレーヤーのように簡単で,手動および自動的なデータ再生を選択できます.

img

位置インデックスは,左側と左側をドラッグし,データ再生の開始時間を迅速に選択することができます.

img

最下端には,右左移動標識によってデータ再生速度を制御することも可能で,時間単位としてミリ秒で,データ再生時に加速または減速することができます.

img

戦略的論理を構築する

価格の下落には様々な要因があるが,世界の経済環境,国のマクロ政策,関連産業政策,供給・需要関係,国際出来事,金利・通貨レート,インフレ・緊縮,市場心理,未知要因などを含むが,最終盤の価格は,多方と空間の競い合いの結果である.もし買い手が多くなったら,価格が上昇し,売り手が多くなったら,価格が下がる.それでは,価格を分析して取引戦略を立てるだけでよい.

発明者による近月のBTC_usdt取引対の量化回帰により,市場高騰と大跌の際には,Tickデータの注文量が明らかに不均衡である.市場高騰の際には,多頭先の注文量が空頭先の注文量よりも著しく大きい.市場高騰の際には,多頭先の注文量より著しく小さい.そうであれば,薄貨の注文量に基づいて短期間の価格の下落を予測できるだろうか.

答えはイエスです.

img img

深度Tickデータ収集により,多空間の両方の掛札数を計算し,比較することで,多空間の総合掛札量差が大きい場合,潜在的な買取機会がある.例えば,多空間の掛札量が多空間の掛札量 N 倍である場合,市場の大半が多く見ていると,短期間の価格上昇の確率が増加すると考えることができる.多空間の掛札量多空間の N 倍である場合,市場の大半が空いていると,短期間の価格減少の確率が増加すると考えることができる.

取引戦略を書き出す

上記の戦略の論理に従って,コードで実行を開始します. 順に開きます: fmz.com Web サイト > ログイン > コントロールセンター > ポリシーパック > 新しいポリシー > 右上角のドラッグメニューをクリックし,Python言語を選択し,ポリシーを書き始めます. この戦略は,教材として引引数を投げるため,私はできるだけ策略の書き方を簡潔にしようとしました. 下のコードの注釈を参照してください.

ステップ1:戦略の枠組みを策定する

# 策略主函数
def onTick():
    pass


# 程序入口
def main():
    while True:  # 进入无限循环模式
        onTick()  # 执行策略主函数
        Sleep(1000)  # 休眠1秒

このフレームワークでは,2つの関数を使用しています. 主関数とOnTick関数です. 主関数はプログラムの入力です. つまり,プログラムはここから実行され,無限回転モードに入り,OnTick関数を繰り返します.

2つ目のステップ: グローバル変数を書き込みます

vol_ratio_arr = []  # 多空挂单比率数组
mp = 0  # 虚拟持仓

vol_ratio_arrを全局変数に定義する理由は,私の戦略は,Tickデータの一段落の多空掛ける単数比率を収集する必要があるため,もし vol_ratio_arr変数を onTick関数に入れたら,ループの動作が明らかに不合理である.我々はループモードで変数の値を特定の条件に達するときに変更する必要がある.最も合理的な方法は,この変数をループの外側に置することです.

持有管理は,通常,現金取引では,口座取得によって持有する通貨ペアを計算する,売買の論理に関連しているため,非常に必要である. ここで,コードを簡素化するために,直接,全局的な仮想持有変数を定義し,売買の論理を制御する.

3つ目:現在の多空白率を計算する

depth = exchange.GetDepth()  # 获取深度数据
asks = depth['Asks']  # 获取卖价数组
bids = depth['Bids']  # 获取买价数组
asks_vol = 0  # 所有卖价挂单
bids_vol = 0  # 所有买价挂单
for index, ask in enumerate(asks):  # 遍历卖价数组
    # 线性计算所有卖价挂单
    asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids):  # 遍历买价数组
    # 线性计算所有买价挂单
    bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol  # 计算多空比率

デジタル通貨は通常20段の深度データであることが知られているので,多頭と空頭の掛ける単位の数を足すと,多頭と空頭の比率を計算することができます.この値が1を超えると,空頭よりも多くの人が見ていることを示し,近い将来価格が上昇することを予知します.この値が1未満の場合,空頭よりも多くの人が見ていることを示し,近い将来価格が下がることを予知します.

しかし,一つは区別する必要があります. 掛けるリストの距離が表格に近いとき,より多くの読み込みや見落とす意欲がより強いことを示します. たとえば,一列に掛ける決済は,20列に掛ける決済よりも確実により強い傾向があります. したがって,私たちは,掛けるリストを積み重ねるとき,20列の掛かりをそれぞれに線形的に与え,異なる重量を与えることがより合理的です.

線形計算の4つ目のステップは

global vol_ratio_arr, mp  # 引入全局变量
vol_ratio_arr.insert(0, bidask_ratio)  # 把多空比率放到全局变量数组里面
if len(vol_ratio_arr) > 20:  # 如果数组超过指定长度
    vol_ratio_arr.pop()  # 删除最旧的元素
all_ratio = 0  # 临时变量,所有多空挂单比率
all_num = 0  # 临时变量,所有线性乘数
for index, vol_ratio in enumerate(vol_ratio_arr):  # 变量全局变量数组
    num = 20 - index  # 线性乘数
    all_num = all_num + num  # 线性乘数累加
    all_ratio = all_ratio + vol_ratio * num  # 所有多空挂单比率累加
ratio = all_ratio / all_num  # 线性多空挂单比率

多頭上乗積列を空頭上乗積列を除くと多空の比値が得られるが,これはただ1つのTickのデータだけである.ただ1つのTickのデータだけで取引を決定することは賢明な選択ではないかもしれない,なぜなら瞬時に変化する市場では1つのTickのデータは説得力がないからである.したがって,我々は固定されたTickのデータを収集し,最後に線形で公正な値を計算する必要がある.

5つ目:取引を

last_ask_price = asks[0]['Price']  # 最新卖一价,用于买入的价格
last_bid_price = bids[0]['Price']  # 最新买一价,用于卖出的价格
if mp == 0 and ratio > buy_threshold:  # 如果当前无持币,并且比率大于指定值
    exchange.Buy(last_ask_price, 0.01)  # 买入
    mp = 1  # 设置虚拟持仓的值
if mp == 1 and ratio < sell_threshold:  # 如果当前持币,并且比率小于指定值
    exchange.Sell(last_bid_price, 0.01)  # 卖出
    mp = 0  # 重置虚拟持仓的值

注文時に価格を指定する必要があるため,購入時に最新の販売価格を直接使用し,販売時に最新の購入価格を直接使用できます. 最後に,注文取引が完了すると,仮想保有の値をリセットします.

終わり

以上は,データ再生機能に基づいて開発された線形接続単流戦略コード解析です.もし取引初心者であれば,データ再生機能はゼロコストで取引を学ぶことができ,取引に対する認識時間を短縮します.実体またはシミュレーション取引は通常,最初の効果を見るのに数年かかります.データ再生機能では数週間で同じ効果を達成できます.


関連性

もっと

サイファー48リアルディスク再生機能はオフですか?

これは簡単な説明です. 細部には最適化が必要です.