双移動平均金十字アルゴリズム

作者: リン・ハーンチャオチャン,日付: 2024-01-23 11:18:57
タグ:

img

概要

戦略の論理

利点分析

また,ストップ・ロスはストップ・ロスのメカニズムを含んでいる.価格が20%以上上昇した場合,ストップ・ロスはそのポジションのエントリー価格の1.2倍に設定される.これはほとんどの利益をロックし,損失を回避する.また,戦略の良質な収益を確保する.

リスク分析

ダブル・ムービング・平均金十字アルゴリズムは,いくつかのリスクも伴う.この戦略は,取引エントリーと出口を決定するために価格と移動平均の関係だけに依存する.移動平均がそのような動きを時間内に反映できない間に価格が異常に変動した場合,不正な取引信号が生成される可能性がある.そのような場合,信号を盲目的にフォローして損失を伴うのを避けるために,価格の動きの手動検査が必要である.

改善の方向性

この戦略にはさらなる強化の余地がある.第一に,シグナル品質を向上させるために移動平均期パラメータを最適化するために異なるパラメータをテストすることができる.第二に,価格統合期間中に偽信号を生成しないように波動性指標を組み込むことができる.第三に,ストップロスのポジショニングを自動的に最適化するために機械学習方法が適用できる.第四に,相関資産からの情報は,シグナル信頼性を向上させるためにポートフォリオ取引システムを確立するために利用できる.

結論


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Estratégia de Cruzamento das Linhas")

// Configuração da Média Móvel
emaPeriod = 8

ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)

// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA

//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0



gain = strategy.position_avg_price*(1+0.2)
// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1) and diffZero

sell_signal = diffUm and diffUnder and crossunder(diff, diff1)

// Executa as operações de compra/venda
if buy_signal
    strategy.entry("Buy", strategy.long)
if sell_signal
    strategy.exit("Buy", limit = gain)

// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)

plot(diffLow, title="Diferença", color=color.red, linewidth=2)

もっと