完全T神公名,
単に デモ! デモ! デモおばさん! パパたち!!リアルタイムで気をつけろ!
波動率を正しく使って,BTC大金を稼ぐのは,これほど簡単です!
千万の量化世界 3日前
量化戦略の研究開発は2つの側面があります. 始めている人にとっては非常に難しいです. 難しさは,
千万の量化者の皆さん,こんにちは!
この記事の特集は,第2回目です. 千千は,大神 (LE_CHIFFRE1) に招待されて光栄です. 微信LE_CHIFFRE1は,どのように波動率因子を使用して,簡単にBTC大盘を勝ち取ることができるか,
波動率の戦略についてお話しします.
01
—
前言
こんにちは,今日,千千の量化
量化指数と戦略 (助成も自動化も可能) は,もちろん,最後に老舗がよく言うことを付け加える必要があります: 投資はリスクがあり,市場への入場は慎重で,戦略はすべての人にアイデアと教訓を提供することであり,利益と損失を自負することだけです. この戦略を使用するすべての利益と損失は,私自身と何千もの量化世界
免責声明が終わると,次の質問が始まります.
02
—
簡単な波動率戦略
私のことをよく知っている人は,私個人的に,アルファをあまり好きではないことを知っています. 私は比喩的にベータを信頼し,ベータを研究する方が多いです. なぜ,e.........mmmmm,わからない.
量化戦略の研究開発は,実は二面的なもので,初心者にとっては非常に難しいです. 難しさは,
この戦略アルゴリズムは,対数値の定周期値の
特定のグラフィックビジュアライゼーションインターフェースは,以下のPPTを参照してください. このグラフは,Pyechartsで自分で描いたもので,特定のコードも,T大
実際,この戦略は,私が以前使っていた戦略である. 広範囲のETF,もちろん,指数選択時に株式の売買のために使用され,その後,直接コインリングに移され,驚いて,実際にダメージを減らすことを発見しました.
グラフは,その年のテスト結果を示し,特定の部分のコードロジックスクリーンショットです.
上の図は,データを読み取ってから,パンダで指標データを計算する図です.
計算が完了すると,pd.to_csv () 函数でデータ出力し,上記のスクリーンショットで使用されたpyecharts (注:古いバージョンのpyechartsを使用しています) を視覚化出力できます.
具体的には,すべての戦略,視覚化,およびパフォーマンス指標コードは,T大
03
—
量化について
まず第一に,良い戦略は公開を恐れず,これは戦争レベルの対決兵器開発ではなく,生死を決めるものなので,自分や他の機関や個人として,いわゆる秘密の戦略を恐れず,CTAには秘密がないので,私の考えでは,誰もが考えていたことや予想外の点だけしかありません.
2つ目は,新規でも経験のあるプレイヤーでも,多くの人がインスピレーションの源を必要としていること. 株の因子掘り,タイミング戦略のアイデアなど,主観的な経験,研究報告,輪内のコミュニケーション交流などから,現在市場にあるいくつかの戦略を購入し,それを読み,理解し,自分のリスク承受能力と特定のニーズに応じて改訂するなど.
結論として,量化とは,量化の中の一種であり,程序化取引は量化の中の一種である.大学時代 (約2009年) に,TBやピラミッドなどのプログラム化が既に有人狩猟されていた.もし今日も続けば,この部分の先見者は10年ほど前に,ウォール街の
最後に,自分の専門知識に対する信頼と記事への招待状をいただき,千千の量化
ありがとうございました! ありがとうございました!
Qtのグループに参加していない友人は,すぐにグループに加わり,学習資料を入手してください!
千千本尊町ビル!
微信が掃く 市民の関心
/*backtest start: 2019-04-18 00:00:00 end: 2020-04-17 23:59:00 period: 15m exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD"}] */ // 胖友们!! 实盘前请注意!! 此内容仅是吕神翻译demo, 上实盘请自行添加相关内容. // 是Demo!!! 实盘谨慎!!! // 初始化 exchange.SetContractType('XBTUSD') var vix_arr = [] var vix_ma = [] var vix_ma_up = [] var vix_ma_dw = [] var LastBarTime = 0 var isFirst = true function initVix() { records = _C(exchange.GetRecords) Log(records.length) if (records && records.length > 2 * N + 2) { // 初始化前N个vix值 for (var i = -2; i < N - 1; i++) { Bar = records[records.length - N + i] lastNbar = records[records.length - N + i - N] Vix() } } // Log("vix_arr", vix_arr.length, vix_arr) // Log("vix_ma", vix_ma.length, vix_ma) // Log("vix_ma_up", vix_ma_up.length, vix_ma_up) // Log("vix_ma_dw", vix_ma_dw.length, vix_ma_dw) } // 获取交易所信息 function UpdateInfo() { account = _C(exchange.GetAccount) pos = _C(exchange.GetPosition) records = _C(exchange.GetRecords) Bar = records[records.length - 1] lastNbar = records[records.length - N] ticker = _C(exchange.GetTicker) } // 计算波动率及上下轨 function Vix() { // 当每K结束时计算 if (LastBarTime !== Bar.Time) { // 当K达到计算根数开始计算vix_arr if (records && records.length > N) { // 获取vix 当前close自然对数 除以 前90根自然对数 减一 vix = Math.log(Bar.Close) / Math.log(lastNbar.Close) - 1 vix_arr.push(vix) //Log("vix_arr", vix_arr) } // 当vix_arr达到计算根数时开始计算vix_ma if (vix_arr && vix_arr.length > N) { // 获取对应周期vix算其移动平均值 vix_ma = TA.MA(vix_arr, N) // 去除ma中的null值 vix_ma = vix_ma.filter(function(val) { return !(!val || val === ""); }) //Log("vix_ma", vix_ma) // 获取上下通道 vix_up = TA.Highest(vix_arr, N) vix_dw = TA.Lowest(vix_arr, N) vix_ma_up.push(vix_up) vix_ma_dw.push(vix_dw) // Log("vix_ma_up", vix_ma_up) //Log("vix_ma_dw", vix_ma_dw) // 限制所有数组长度 if (vix_arr.length > 2000) { vix_arr.splice(0, 1); } if (vix_ma.length > 2000) { vix_ma.splice(0, 1); } if (vix_ma_up.length > 2000) { vix_ma_up.splice(0, 1); } if (vix_ma_dw.length > 2000) { vix_ma_dw.splice(0, 1); } } LastBarTime = Bar.Time } } // 画线 function PlotMA_Kline(records, isFirst) { //$.PlotRecords(records, "K") if (isFirst) { for (var i = records.length - 1 - N; i <= records.length - 1; i++) { if (vix_ma[i] !== null) { $.PlotLine("vix_arr", vix_arr[i], records[i].Time) $.PlotLine("vix_ma", vix_ma[i], records[i].Time) $.PlotLine("vix_ma_up", vix_ma_up[i], records[i].Time) $.PlotLine("vix_ma_dw", vix_ma_dw[i], records[i].Time) } } PreBarTime = records[records.length - 1].Time } else { if (PreBarTime !== records[records.length - 1].Time) { $.PlotLine("vix_arr", vix_arr[vix_arr.length - 2], records[records.length - 2].Time) $.PlotLine("vix_ma", vix_ma[vix_ma.length - 2], records[records.length - 2].Time) $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 2], records[records.length - 2].Time) $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 2], records[records.length - 2].Time) PreBarTime = records[records.length - 1].Time } $.PlotLine("vix_arr", vix_arr[vix_arr.length - 1], records[records.length - 1].Time) $.PlotLine("vix_ma", vix_ma[vix_ma.length - 1], records[records.length - 1].Time) $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 1], records[records.length - 1].Time) $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 1], records[records.length - 1].Time) } } // 交易逻辑 function onTick() { // 无仓位时 if (pos.length == 0) { // Long 当前K线的收盘价 > 上轨 && 之前K线的收盘价 <= 上轨 if (vix_arr[vix_arr.length - 1] > vix_ma_up[vix_ma_up.length - 1] && vix_arr[vix_arr.length - 2] <= vix_ma_up[vix_ma_up.length - 2]) { exchange.SetDirection("buy") exchange.Buy(ticker.Sell, Amount) $.PlotFlag(new Date().getTime(), 'Buy', 'BK') } // Short 当前K线的收盘价 < 下轨 && 之前K线的收盘价 >= 下轨 if (vix_arr[vix_arr.length - 1] < vix_ma_dw[vix_ma_dw.length - 1] && vix_arr[vix_arr.length - 2] >= vix_ma_dw[vix_ma_dw.length - 2]) { exchange.SetDirection("sell") exchange.Sell(ticker.Buy, Amount) $.PlotFlag(new Date().getTime(), 'Sell', 'SK') } } // 多仓时 if (pos.length > 0 && pos[0].Type == 0) { // 平多 当前K线的收盘价 < 中轨 && 之前K线的收盘价 >= 中轨 if (vix_arr[vix_arr.length - 1] < vix_ma[vix_ma.length - 1] && vix_arr[vix_arr.length - 2] >= vix_ma[vix_ma.length - 2]) { exchange.SetDirection("closebuy") exchange.Sell(ticker.Buy, pos[0].Amount) $.PlotFlag(new Date().getTime(), 'Sell', 'SBK') } } // 空仓时 if (pos.length > 0 && pos[0].Type == 1) { // 平空 当前K线的收盘价 > 中轨 && 之前K线的收盘价 <= 中轨 if (vix_arr[vix_arr.length - 1] > vix_ma[vix_ma.length - 1] && vix_arr[vix_arr.length - 2] <= vix_ma[vix_ma.length - 2]) { exchange.SetDirection("closesell") exchange.Buy(ticker.Sell, pos[0].Amount) $.PlotFlag(new Date().getTime(), 'Buy', 'PSK') } } } function main() { initVix() while (1) { UpdateInfo() Vix() onTick() if (records) { PlotMA_Kline(records, isFirst) //Log('画线') isFirst = false } Sleep(5 * 1000) } }
発明者の量化私は下を横切って来ました.
ルーツメ豆は美しい
紅茶この戦略は波動率とあまり関係していないようです
説教90サイクル前の私以外は,波動率を記述することはできません. HH,LLの開場方法については,唐津通道DCの操作であり,平仓は均線戦略を選択した. 暗黙の不安定性については,専門家が説明してくれます.
軽い雲豆ちゃん,荷物を外包する?
シャイイ支持しないと聞かれたら支持するよ
シャイイ支持しないと聞かれたら支持するよ
軽い雲ほら
軽い雲┃。。。。