勢いを追う戦略


作成日: 2023-11-23 13:47:02 最終変更日: 2023-11-23 13:47:02
コピー: 0 クリック数: 610
1
フォロー
1617
フォロワー

勢いを追う戦略

概要

この戦略は,K線実体サイズとトレンド動力の指標EMAを使用して市場動向を判断し,低価格で買い高価格の自動取引戦略である.その基本的考え方は,上昇状況で下落を殺し,下降状況で返済するものである.

戦略原則

  1. K線実体大小に応じて,を渣,小,大三種に分類する.
  2. EMAが上昇した場合,大きな赤色が現れた場合,市場が調整されていることを示し,この時点で多項を投下する.
  3. EMAが下がった場合,大緑色のが現れた場合,市場が安定したことを示し,この時点で仓庫を張って仓庫を建てる.
  4. K線実体の変化とEMAのトレンドをリアルタイムで監視し,ポジションを動的に調整する.

優位分析

  1. 戦略は明確で,簡単な指標で市場の構造を判断し,容易に理解できます.
  2. 策略パラメータが少なく,マッチングが難しく,安定性が高い.
  3. 市場が急激に波動する時に利益が出る.
  4. 市場が変化する時に,迅速に反応する.

リスクと最適化

  1. 株価の絶対幅を考慮しないことにより,ストップダスのリスクが発生する可能性がある.ATR指標と組み合わせてストップダスを行うことができる.
  2. 暗号通貨の基差を考慮せずに,より多くの取引対をテストできます.
  3. 機械学習アルゴリズムを導入してK線形状を判別する.
  4. 取引量指数の選択品種と組み合わせることができる.
  5. 異なる周期のパラメータ調整をテストできます.

要約する

この戦略の全体的な構想は明確で分かりやすい.主に浮動量とを追跡の2つの特徴を突出している. 単純なEMABOLL指標によって市場の主線方向性を判断し,K線実体によって局所的な調整を判断し,低吸高抛の高効率取引を実現している. 戦略の安定性は高く,暗号通貨では特に優れたパフォーマンスを発揮しており,さらなるテスト・最適化の価値がある.

ストラテジーソースコード
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

strategy(title='Trend Follower Strategy v2 [divonn1994]', shorttitle='TrendFollowStrategyV2', overlay=false, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=100)

//Important Constants for Classifying Candle Size----------------------------------------------------------------------------------------------------------------------------------------------

timesBigger = 2
crumbSize = 1400
crumbSize2 = 2100
bigCandleSize = 3800

//Key Alerts and Classifications of Candle Size and EMAs---------------------------------------------------------------------------------------------------------------------------------------

emaAlert = ta.ema(close, 8) > ta.ema(open, 8) ? 1 : 0 
CandleSize = close * 1 - open * 1
previousCandleSize = close[1] * 1 - open[1] * 1
greenCandle = close > open ? 1 : 0
previousGreenCandle = close[1] > open[1] ? 1 : 0

crumb = (greenCandle==1 and CandleSize<=crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize) ? 1 : 0
bigCrumb = (greenCandle==1 and CandleSize<=crumbSize2 and CandleSize>crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize2 and -CandleSize>crumbSize) ? 1 : 0
previousCandleIsSmallCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize) ? 1 : 0
previousCandleIsBigCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize2 and previousCandleSize>crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize2 and -previousCandleSize>crumbSize) ? 1 : 0

bigCandle = (greenCandle==1 and previousCandleIsBigCrumb==1 and CandleSize>=math.abs(timesBigger*previousCandleSize)) or (greenCandle==1 and previousCandleIsSmallCrumb==1 and CandleSize>=bigCandleSize) or (greenCandle==1 and previousCandleIsSmallCrumb==0 and previousCandleIsBigCrumb==0 and CandleSize>=math.abs(timesBigger*previousCandleSize)) ? 1 : 0

//Engine (Secret Sauce)------------------------------------------------------------------------------------------------------------------------------------------------------------------------

buy = (crumb==0 and bigCrumb==0 and greenCandle==0) or (greenCandle==1 and bigCandle==1) or (emaAlert==0) ? 0 : 1

//Strategy-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(buy, 0.5)
    strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(buy, 0.5)
    strategy.close('long')

//Plot Strategy Behavior-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(buy, color=color.new(color.silver, 0))
plot(0.5, color=color.new(color.fuchsia, 0))