
このPineスクリプト戦略は,TradingViewプラットフォーム上で1日の平均コスト戦略を実現し,EMA指標のタッチシグナルと組み合わせて入場点を決定する.この戦略は平均コスト投資法に従って,リスク分散のために1日固定金額で購入する.同時に,EMAのタッチシグナルによって特定の入場時間を指導する.
この戦略の特徴は以下の通りです.
平均日費用投資の法則
EMA指数は入場点を決定する
ダイナミック・ストップ・メカニズム
最大ポジション制限
具体的には,戦略は,その日の閉店価格を計算して購入できる株式の数を計算して,毎日固定金額を投資する.その日の閉店価格に5日,10日,20日などのEMAの任意の項が突破された場合,その日の閉店価格に,購入シグナルが誘発される.累積したポジションが最大限300円に達すると,新しい購入操作は行われない.また,閉店価格が20日SMAを下回るとか,または事前に設定された退出日に達すると,ストップ損失をクリアする.この戦略は,価格グラフに異なる周期のEMA線を描画し,視覚的な分析を容易にする.
この戦略には以下の利点があります.
分散型投資は単一投資のリスクを軽減する
EMAは,短期的な調整を回避する
ダイナミックストップ,損失制御
最大ポジション制限 リスク管理
EMAは直感的に判断しやすい
高度調整可能
この戦略にはいくつかのリスクがあります.
システム上のリスクは避けられない
固定投資によるリスク
EMAは極端な状況に反応できない
ポジションの制限も利益の余地を制限している.
停滞点の設定には経験と技術が必要です
この戦略は,さらに最適化できる余地があります.
ダイナミックな調整で毎日の投入額を増加させる
選考基準の追加
指数移動平均を用いて
最大ポジションの動的調整
漸進的な停止を採用
全体として,この日平均コスト戦略は,EMAのタッチシグナルを組み合わせて,長期にわたる分期投資のアイデアを実現している.単一の大手開設と比較して,リスクを分散させ,高点での狂喜を避ける.EMAの加入はまた,短期調整によるリスクをある程度回避し,最大限の損失を制御するための止損措置をとる.同時に,ブラック天のリスクや,固定投資額がチャンスを十分に捉えることができないという後悔などの問題を注意する必要がある.これらは,戦略のさらなる最適化のための方向性を提供している.パラメータ調整と指標の組み合わせによって,段階的に最適化して,高効率で安定した量化取引戦略を実現することができる.
/*backtest
start: 2024-01-08 00:00:00
end: 2024-01-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Daily DCA Strategy with Touching EMAs", overlay=true, pyramiding=10000)
// Customizable Parameters
daily_investment = input(50000, title="Daily Investment")
start_year = input(2022, title="Start Year")
start_month = input(1, title="Start Month")
start_day = input(1, title="Start Day")
end_year = input(2023, title="End Year")
end_month = input(12, title="End Month")
end_day = input(1, title="End Day")
trade_count_limit = input(10000, title="Pyramiding Limit")
enable_sell = input(true, title="Enable Sell")
start_date = timestamp(start_year, start_month, start_day)
var int trade_count = 0
// Calculate the number of shares to buy based on the current closing price
shares_to_buy = daily_investment / close
// Check if a new day has started and after the start date
isNewDay = dayofmonth != dayofmonth[1] and time >= start_date
// Buy conditions based on EMA crossovers
ema5_cross_above = crossover(close, ema(close, 5))
ema10_cross_above = crossover(close, ema(close, 10))
ema20_cross_above = crossover(close, ema(close, 20))
ema50_cross_above = crossover(close, ema(close, 50))
ema100_cross_above = crossover(close, ema(close, 100))
ema200_cross_above = crossover(close, ema(close, 200))
if isNewDay and (ema5_cross_above or ema10_cross_above or ema20_cross_above or ema50_cross_above or ema100_cross_above or ema200_cross_above) and trade_count < trade_count_limit
strategy.entry("Buy", strategy.long, qty=shares_to_buy)
trade_count := trade_count + 1
// Dynamic sell conditions (optional)
sell_condition = true
if enable_sell and sell_condition
strategy.close_all()
// EMA Ribbon for visualization
plot(ema(close, 5), color=color.red, title="EMA 5")
plot(ema(close, 10), color=color.orange, title="EMA 10")
plot(ema(close, 20), color=color.yellow, title="EMA 20")
plot(ema(close, 50), color=color.green, title="EMA 50")
plot(ema(close, 100), color=color.blue, title="EMA 100")
plot(ema(close, 200), color=color.purple, title="EMA 200")