
この戦略の主な考え方は,価格の下落をモニタリングすることによって買い操作を行うことです.価格が前期に比べて5%以上下落すると,買い信号が誘発され,現在の閉盘価格で一定数のポジションを購入します.価格が購入価格より高くなると,平仓で利益を得ます.この戦略は,市場の波動性を利用して,価格の短期的な反発の機会を掴み,利益を得ようとします.
この戦略は,価格の短期的な下落が特定の幅を超えると購入シグナルとして購入し,価格の反発の機会を掴み,利益を得るため,論理は簡単で分かりやすい.戦略の優位性は,トレンドのキャプチャとリスクの制御にありますが,頻繁な取引,深さ撤回,価格変動などのリスクも注意する必要があります.将来,ストープスローズ最適化,シグナルフィルター,ポジション管理,多種多様性,などの面で戦略のさらなる最適化と改善を行うことができ,長期的により安定した効果を得ることができます.
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
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/
// © Thgoodtrader
//@version=5
strategy("TGT Falling Buy", overlay=true, margin_long=100, margin_short=100)
var float buy_price = na
var float open_price = na
var float open_weekend = na
var float close_weekend = na
var bool trade=false
var float balance = 1000
// Definir el precio de compra inicial y la cantidad inicial
var float qty = na
// Verificar si el día de la semana es sábado (6) o domingo (0)
es_sabado = dayofweek == 1
es_domingo = dayofweek == 7
es_viernes = dayofweek == 6
// Calcular el valor del saldo inicial
balance_initial = balance
change_percent = ((close - close[1]) / close[1]) * 100
is_last_candle_negative = close < open
is_change_above_threshold = change_percent < -5
// Cambiar el color de la última vela si cumple las condiciones
barcolor(is_last_candle_negative and is_change_above_threshold ? color.yellow : na)
bgcolor(is_last_candle_negative and is_change_above_threshold ? color.yellow : na, transp=80)
// Guardar el precio de compra cuando se cumpla la condición del 5%
if is_change_above_threshold
// Calcular la cantidad basada en el precio de compra y el saldo
qty := balance / close
// Guardar el precio de compra
buy_price := close
open_price := open
strategy.entry("Buy Trading",strategy.long,qty)
alert("Comprar BTC", alert.freq_once_per_bar_close)
trade :=true
//if (((close - strategy.position_avg_price) / strategy.position_avg_price) * 100 ) > 2
if close > strategy.position_avg_price
// Calcular el valor de ganancia o pérdida
pnl = (close - strategy.position_avg_price) * qty
// Actualizar el saldo
balance := balance_initial + pnl
strategy.close("Buy Trading")
alertcondition(is_change_above_threshold, title = "Buy 5% Discount", message = "Buy Position")
alertcondition(close > strategy.position_avg_price, title = "Close Trade", message = "Close Buy Position")