3つの連続したマイナスラインと移動平均に基づく動的なストッププロフィットとストップロスの取引戦略

SMA EMA
作成日: 2024-05-09 16:42:35 最終変更日: 2024-05-09 16:42:35
コピー: 0 クリック数: 627
1
フォロー
1617
フォロワー

3つの連続したマイナスラインと移動平均に基づく動的なストッププロフィットとストップロスの取引戦略

概要

この取引戦略は,連続した3つの陰線の形状と均線システムに基づいて取引信号を判断する.価格が200日間の平均線より上であり,連続した3つの陰線の形状が現れたとき,多ポジションを行う.この戦略は,ダイナミックなストップ・アンド・ストップ・ロスの方法で取引リスクを管理し,ストップ・アンド・ストップ・ロスの位置は,短期平均線の位置と価格変化のパーセントに基づいて決定される.この戦略は,指定された時間範囲内でのみ取引する.

戦略原則

  1. 連続陰線の数を計算する.指定された数の ((デフォルトは3) の連続陰線が現れたとき,形成が多信号であると考える.
  2. 2つの平均線を使用して,トレンドと取引のタイミングを判断します. 標準的には10日平均線と200日平均線を使用します. 価格が200日平均線以上である場合にのみ,追加することを考慮してください.
  3. ダイナミックストップとストップポイントを設定する. ストップポイントは開設価格の一定パーセント上方 (デフォルト1.5%),ストップポイントは開設価格の一定パーセント下方 (デフォルト1%) である.
  4. もう一つの平仓条件は,価格が10日平均線に対する位置の変化である.多頭ポジションを取ったとき,価格が平均線上から下へと戻った場合,平仓である.
  5. 戦略は,指定された時間範囲内でのみ実行され,開始日と終了日によって決定されます.

戦略的優位性

  1. 価格の形状と均等なシステムと組み合わせると,トレンドの機会をうまく捉えることができます.
  2. ダイナミックなストップとストップでリスクと利益を柔軟に制御できます.ストップポイントは価格上昇に伴い上昇し,利益が走るようにします.ストップポイントは最大損失を制限します.
  3. 短期平均線の位置変化を平仓信号として利用し,価格の突然の逆転に迅速に対応することができる.
  4. 取引の時間帯を指定することで,市場閉鎖や祝日などの特別な時期に取引を避け,リスクを減らすことができます.

戦略リスク

  1. 連続した陰線形は,トレンドの逆転を完全に決定することはできません.連続した陰線の後,価格が上昇し続けることが起こり,戦略が失敗する可能性があります.
  2. 固定パーセントのストップ・ストラップ・ポイントは,市場の激しい変動に対応できないかもしれない.トレンドが強いとき,ストップ・ポイントは,あまりにも低い設定され,早期退場を引き起こすかもしれない.波動が強くなると,ストラップ・ポイントは,あまりにも近く,頻繁にストラップを引き起こすかもしれない.
  3. 短期平均線位置の判断は,特に価格が急激に変化するときに遅延し,最適の平定時間を逃している可能性があります.
  4. 戦略にはポジション管理とリスク管理の手段が欠如し,エントリーポイントとポジションのサイズは固定されており,単一取引のリスクが過大になる可能性があります.

戦略最適化の方向性

  1. MACD,RSIなどの技術的な指標を導入することで,信号の信頼性が向上します.
  2. 停止点と停止点の計算方法を最適化します.ATRまたは波動率を使用して動的に調整するか,サポート抵抗点と組み合わせて設定します.
  3. 平仓のシグナルには,取引量変化,多空頭保有比率など,誤ったシグナルを避けるために,より多くの確認条件を使用することを考えることができます.
  4. ポジション管理とリスク管理の措置を導入し,口座の余額とリスクレベルに応じて取引毎のポジションサイズを調整し,全体的なリスク制限を設定します.
  5. 連続線数,平均線周期など,パラメータ設定については,最適のパラメータ組み合わせを探すために最適化テストを行うことができる.

要約する

この取引戦略は,連続した陰線形状と均線システムによってトレンドの取引機会を判断し,同時に動的ストップ・ストップ・損失と短期均線位置の変化を利用してリスクを制御する.戦略の考え方は明確で,中長期のトレンドを把握するトレーダーに適している.しかし,戦略には,信号信頼性,ストップ・ストップ・損失の位設定,ポジション管理などのいくつかの限界があり,最適化の余地がある.実際のアプリケーションでは,市場の特徴と個人のリスクの好みに応じて,戦略に適切な調整と改善を施し,リスクを厳しく制御する必要があります.

ストラテジーソースコード
/*backtest
start: 2023-05-09 00:00:00
end: 2024-05-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)