低遅延 三重移動平均 急速取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-25 14:24:38
タグ:

この戦略は"Low Lag Triple Moving Average Fast Trading Strategy"と呼ばれる.その主なアイデアは,異なるパラメータと低遅延設計を持つ3つの移動平均の黄金十字と死十字に基づいてエントリーと出口を決定することです.

戦略原則

この戦略は,12~26~55期低遅延TEMAを含む3つの低遅延移動平均を使用している.これらの3つのMAは,高速,中間,遅延MAを表している.高速MAが中間MAを横切ると,購入信号が生成される.高速MAが中間MAを下回ると,販売信号が生成される.市場エントリーと出口点を決定するために3つのMAのクロスオーバーを使用して,高周波取引を達成することができる.

テンプレート関数 tema() は,低遅延TEMAを計算するためのコードで定義されている.その計算式は: TEMA = 2*EMA - EMA(EMA).計算のために二重指数移動平均EWMAを使用する.本質的には,遅延効果を大幅に軽減する主なメリットを持つ二重スムーズEDMAである.したがって,価格変化により速く反応し,取引信号のタイミングを改善することができる.

具体的には,この戦略のエントリールールは,高速MAが中間MAを横切り,高速MAがスローMAを上回ると,買い信号が生成される.高速MAが中間MAを下回り,高速MAがスローMAを下回ると,販売信号が生成される.

利点分析

この戦略の最大の利点は,エントリーと出口が迅速かつ正確に決定されることである. 3つのMAの低遅延設計は遅延効果を大幅に軽減し,価格変化に迅速に対応することができる.また,信号を決定するために3つのMAのクロスオーバーを使用することで,誤った信号を避ける.

さらに,この戦略は,短期間の価格変動から利益を得るために高周波取引に適しています.迅速なエントリーと出口を通じて,高変動市場から利益を得ることができます.

リスク分析

最大のリスクは,超短期的なウィップソーが発生する可能性である.低遅延設計からの価格変化への高い敏感性により,一部の市場は高周波の振動を経験する可能性がある.その後,ウィップソーが発生する可能性が高い.

また,高周波取引では,比較的高い手数料とスライドコストを支払う必要があります.収益能力が不十分であれば,取引コストによる損失を容易に受けます.

さらに,この戦略は,ストップ・ロスを更新し,利益を間に合うように,トレーダーにリアルタイム監視能力が強いことを要求します.

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

戦略は以下の側面から最適化できます.

  1. 3つのMAsの期間パラメータを最適化し,異なる市場特性をより良く調整する.

  2. 波動性指標やボリューム指標を追加して信号を確認し,変動する市場での変動を回避します.

  3. より多くの要素を組み込み ダイナミックな遅延停止メカニズムを設置する

  4. 資金管理技術によって単一の取引リスクを制御するためにポジションサイズを最適化する.

  5. 機械学習アルゴリズムを組み込み 戦略パラメータを動的に最適化します

結論

これは低遅延三重移動平均の高速取引戦略である.低遅延設計により,高速エントリーと出口を達成することができ,短期的な機会を把握するために高周波取引に適しています.この戦略の最大の利点は,信号決定が迅速で正確であることです.最大の欠点は,市場範囲でウィップソーされやすいことです.この記事は,その理性,利点,リスク,最適化方向の詳細な分析を通じて,この取引戦略を包括的に要約しています.
[/トランス]


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("scalping low lag tema etal", shorttitle="Scalping tema",initial_capital=10000, overlay=true)
mav = input(title="Moving Average Type", defval="temadelay", options=["nkclose", "ema", "emadelay", "fastema", "tema", "temadelay"])
lenb = 3
N = input(8)
K = input(1.2)
fracCap = input(1.0)
in = close + K*mom(close,N)
source = close
length = 8
sigma  = 12.0
offset = 0.9
p = 4
// length = 10
// sigma  = 6.0
// offset = 0.85
tema(src,len) => fastemaOut = 2*ema(src, len) - ema(ema(src, len), len)


a = 0.0
b = 0.0
c = 0.0
if mav == "nkclose"
    a := ema(in, 12)
    b := a[1]
    c := a[2]
if mav == "ema"
    a := ema(close, 12)
    b := ema(close, 26)
    c := ema(close, 55)
if mav == "emadelay"
    a := ema(close, 12)
    b := a[1]
    c := a[2]
if mav == "fastema"
    a := ema(in, 12)
    b := ema(in, 26)
    c := ema(in, 55)
if mav == "tema"
    a := tema(close, 12)
    b := tema(close, 26)
    c := tema(close, 55)
if mav == "temadelay"
    a := tema(close, 12)
    b := a[1]
    c := a[2]

TP = input(200)
SL = input(130)
TS = input(1)
// TP = input(50)
// SL = input(110)
// TS = input(1)

orderSize = floor((fracCap * strategy.equity) / close)
long = cross(a, c) and a > b
short = cross(a, c) and a < b
plot(a, title="12", color=color.red, linewidth=1)
plot(b, title="26", color=color.blue, linewidth=1)
plot(c, title="55", color=color.green, linewidth=1)

strategy.entry("Long", strategy.long, qty=orderSize,  when=long)
strategy.entry("Short", strategy.short, qty=orderSize,  when=short)
// strategy.entry("Long", strategy.long,  100.0, when=long)
// strategy.entry("Short", strategy.short,  100.0, when=short)
// strategy.entry("Long", strategy.long, 100.0, when=long)
// strategy.entry("Short", strategy.short, 100.0, when=short)
// strategy.entry("Long", strategy.long, 1.0, when=long)
// strategy.entry("Short", strategy.short, 1.0, when=short)

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long[1])
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short[1])
strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)


もっと