Comprar Segunda-feira Vender quarta-feira Estratégia de negociação

Autora:ChaoZhang, Data: 2023-09-12 16:44:53
Tags:

Esta estratégia negocia o padrão cíclico semanal entrando em longo na fechadura de segunda-feira e tirando lucro antes da abertura de quarta-feira para capturar a oscilação de preços durante este período.

Estratégia lógica:

  1. Executar entrada longa em todas as segundas feiras.

  2. Tirem lucro para sair muito antes de abrirem todas as quartas-feiras.

  3. Defina a percentagem de stop loss para perda limite.

  4. Definir a percentagem de lucro para bloquear os ganhos.

  5. Paragem de gráficos e linhas de lucro para lucro e perda visuais.

Vantagens:

  1. As trocas cíclicas apresentam baixos tiros e bons retornos históricos.

  2. Regras fixas fáceis de automatizar e executar.

  3. Configuração simples de stop loss e take profit.

Riscos:

  1. Não pode adaptar-se a eventos que perturbam o ciclo.

  2. Stop loss atrasado Incapaz de limitar a perda em uma única transacção.

  3. Encerrado no lucro, incapaz de seguir para cima.

Em resumo, este sistema mecânico cíclico tem backtests impressionantes, mas luta para se adaptar quando o padrão muda.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © processingclouds

// @description Strategy to go long at end of Monday and exit by Tuesday close, or at stop loss or take profit percentages  

//@version=5
strategy("Buy Monday, Exit Wednesday", "Mon-Wed Swings",overlay=true)

//  ----- Inputs: stoploss %, takeProfit %
stopLossPercentage = input.float(defval=4.0, title='StopLoss %', minval=0.1, step=0.2) / 100
takeProfit = input.float(defval=3.0, title='Take Profit %', minval=0.3, step=0.2) / 100

//  ----- Exit and Entry Conditions - Check current day and session time
isLong = dayofweek == dayofweek.monday  and not na(time(timeframe.period, "1400-1601"))
isExit = dayofweek == dayofweek.wednesday and not na(time(timeframe.period, "1400-1601"))

//  ----- Calculate Stoploss and Take Profit values
SL = strategy.position_avg_price * (1 - stopLossPercentage)
TP = strategy.position_avg_price * (1 + takeProfit)

//  ----- Strategy Enter, and exit when conditions are met
strategy.entry("Enter Long", strategy.long, when=isLong)
if strategy.position_size > 0 
    strategy.close("Enter Long", isExit)
    strategy.exit(id="Exit", stop=SL, limit=TP)

//  ----- Plot Stoploss and TakeProfit lines
plot(strategy.position_size > 0 ? SL : na, style=plot.style_linebr, color=color.red, linewidth=2, title="StopLoss")
plot(strategy.position_size > 0 ? TP : na, style=plot.style_linebr, color=color.green, linewidth=2, title="TakeProfit")

Mais.