
Esta estrategia es un sistema de negociación basado en fenómenos anormales del mercado, que utiliza principalmente las características del comportamiento del mercado durante el cierre de la noche del jueves hasta el cierre del viernes. La estrategia utiliza un tiempo de entrada y salida fijo para verificar la eficacia de este modelo de mercado mediante la retroalimentación.
La lógica central de la estrategia se basa en los siguientes elementos clave:
La estrategia es un sistema de negociación clásico basado en anomalías del mercado, que obtiene beneficios potenciales a través de un estricto manejo de tiempo y un manejo conservador de fondos. Aunque la lógica de la estrategia es simple, se debe tener en cuenta el riesgo que conlleva el cambio en el entorno del mercado, y se recomienda un control de posición más conservador y un mecanismo de gestión de riesgos más completo para el comercio en vivo.
/*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")