
Esta estratégia é um sistema de negociação baseado em anomalias de mercado, que utiliza principalmente as características do comportamento do mercado durante o fechamento da noite de quinta-feira até o fechamento da sexta-feira. A estratégia usa um tempo fixo de entrada e saída para verificar a eficácia deste modelo de mercado por meio de um teste de retorno.
A lógica central da estratégia é baseada nos seguintes elementos-chave:
A estratégia é um sistema de negociação clássico baseado em anomalias do mercado, com o objetivo de obter lucros potenciais através de um rigoroso gerenciamento de tempo e uma gestão conservadora de fundos. Embora a lógica da estratégia seja simples, é necessário estar atento aos riscos trazidos por mudanças no ambiente do mercado, recomendando o uso de controles de posição mais conservadores e um mecanismo de gerenciamento de risco mais perfeito em negociações em disco.
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © piirsalu
//@version=5
strategy("Gold Friday Anomaly Strategy",
default_qty_type=strategy.percent_of_equity,
slippage = 1, commission_value=0.0005,
process_orders_on_close = true,
initial_capital = 50000,
default_qty_value=500,
overlay = true)
/////////////////////////////////////////////////////////////////////////////////////
// . USER INPUTS . //
/////////////////////////////////////////////////////////////////////////////////////
// Define backtest start and end dates
st_yr_inp = input(defval=2000, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
// Set start and end timestamps for backtesting
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp, 00, 00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp, 00, 00)
/////////////////////////////////////////////////////////////////////////////////////
// . STRATEGY LOGIC . //
/////////////////////////////////////////////////////////////////////////////////////
// Check if the current day is Friday
isFriday = (dayofweek == dayofweek.friday)
// Initialize a candle counter
var int barCounter = 0
// Increment the candle counter on each new bar
barCounter := barCounter + 1
// Define trading session time ranges
pre_mkt = time(timeframe.period, '0400-0800:23456')
mkt_hrs = time(timeframe.period, '0800-1600:23456')
eod = time(timeframe.period, '1200-1600:23456')
/////////////////////////////////////////////////////////////////////////////////////
// . STRATEGY ENTRY & EXIT . //
/////////////////////////////////////////////////////////////////////////////////////
// Enter a long position on the first candle of Friday within the backtest period
if dayofweek == 4 and time >= start and time <= end
strategy.entry("BuyOnFriday", strategy.long)
// Close the position after holding it for 4 candles
if (barCounter % 1 == 0)
strategy.close("BuyOnFriday")