アルーン指標に基づく定量戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-19 15:47:21
タグ:

概要

この戦略は,シンプルな購入・販売シグナルを生成するために,市場傾向の方向性を決定するために,純粋にAroon指標を使用する.これは,Aroonのトレンドキャプチャ能力を組み合わせ,純粋に指標に基づいた機械的な取引システムを構築する.

戦略の論理

  1. 7 期間の間で最も高い値と最も低い値を持つバーを計算します.

  2. 最大高棒の比率を上行として合計バーで計算する.

  3. 最低の低棒の比率を,全棒の比率を下行として計算する.

  4. 上線が下線より大きいとき 購入信号を生成します

  5. 下線が上線より大きいときに売り信号を生成します.

  6. 戦略パラメータで入口方向を制御する

  7. 指定された時間枠内で オーダーを開くと閉じる

利点分析

  1. 純指数に基づく取引で アルーンのみをベースに

  2. シンプルな指標パラメータで 分かりやすく最適化できます

  3. 異なる楽器の長/短方向の柔軟な選択

  4. バックテストとライブ取引のためのカスタマイズ可能な時間枠.

  5. 分かりやすく実行できる 明確な取引信号です

リスク分析

  1. 単一の指標として 誤った信号に易い

  2. 上昇傾向/下落傾向の強さを正確に判断できない.

  3. 遅延が少しあり 逆転を間に合わない

  4. 市場の変化に 動的に調整できない

  5. 引き上げリスクの可能性

オプティマイゼーションの方向性

  1. 異なる楽器と時間枠でテストする

  2. シグナル品質を改善するためにフィルターを追加します.

  3. 全体的な傾向を決定するために傾向指標を組み込む.

  4. 進化する傾向に基づいて動的な出口を開発する.

  5. パラメータとテスト組み合わせを最適化する

  6. ポジションサイズとリスク管理を追加します

概要

この戦略は,Aroon をベースにした単純なトレンド・シグナルを提供する.誤解を招くシグナルとリスク制御を避けるために改善の余地がある.しかし,論理は単純で明確で,強化のための基本的な量子戦略として機能する.全体的に,さらなるテストと最適化に値する実践的な戦略である.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018
//@version=2

strategy(title = "Noro's Aroon Strategy v1.0", shorttitle = "Aroon str 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(7, defval = 7, minval = 1, maxval = 1000)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//Aroon
upper = 200 * (highestbars(high, length+1) + length)/length
lower = 200 * (lowestbars(low, length+1) + length)/length
plot(upper, color=#FF6A00)
plot(lower, color=#0094FF)

//Signals
up = upper > lower
dn = upper < lower

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
    
if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
 
if true
    strategy.close_all()

もっと