TGT основан на стратегии покупки снижения цены.

TGT SMA RSI
Дата создания: 2024-06-07 15:33:26 Последнее изменение: 2024-06-07 15:33:26
Копировать: 3 Количество просмотров: 468
1
Подписаться
1617
Подписчики

TGT основан на стратегии покупки снижения цены.

Обзор

Основная идея этой стратегии заключается в том, чтобы совершать покупку, отслеживая падение цены. Когда цена снижается более чем на 5% по сравнению с предыдущим циклом, это вызывает сигнал покупки, чтобы купить определенное количество позиций по текущей цене закрытия.

Стратегический принцип

  1. Рассчитывается процент снижения текущей ценой закрытия по сравнению с ценой закрытия предыдущего периода.
  2. Если падение превышает 5%, то запускается сигнал “покупать” и покупается определенное количество позиций по текущей цене закрытия. Количество покупаемых позиций рассчитывается на основе баланса текущего счета и цены покупки.
  3. Запись цены и количества покупок.
  4. Если текущая цена выше цены покупки, то ликвидация прибыльной позиции завершается.
  5. Расчет прибыли и убытков, обновление баланса счета.
  6. На графике желтым цветом обозначена K-линия, по которой происходит сигнал покупки.

Анализ преимуществ

  1. Простые и понятные: логика стратегии ясна, ее легко понять и реализовать.
  2. Поймать тренд: купив более низкие цены, можно поймать кратковременный отскок цены.
  3. Контроль риска: количество покупок рассчитывается исходя из баланса счета и текущей цены, контролируя риск на каждой сделке.
  4. Вовремя закончить: когда цена выше покупной цены, решительно свернуть позицию, не вступать в войну, контролировать риск.
  5. Интуитивное отображение: на графике в специальных цветах обозначены сигналы покупки, которые можно легко наблюдать и анализировать.

Анализ рисков

  1. Частые сделки: эта стратегия ориентирована на краткосрочные колебания, частота сделок может быть высокой, необходимо обратить внимание на влияние затрат на комиссионные на доход.
  2. Глубина вывода: если после покупки произойдет дальнейшее значительное падение цены, возможно определенный риск вывода.
  3. Волатильность цен: стратегия зависит от волатильности цен. В условиях низкой волатильности рынка эффективность стратегии может быть снижена.
  4. Уровень баланса прибыли и убытков: стратегия не имеет четких требований и контроля над вероятностью выигрыша и убытков. В реальном исполнении необходимо обратить внимание на общую способность стратегии к убыточному балансу.

Направление оптимизации

  1. Оптимизация стоп-лосса: в настоящее время стратегия не устанавливает условия стоп-лосса после покупки, можно рассмотреть возможность добавления некоторых логик стоп-лосса, таких как фиксированный процент стоп-лосса или стоп-лосса ATR, чтобы дополнительно контролировать максимальные потери в одной сделке.
  2. Фильтрация сигнала: после создания сигнала покупки, можно добавить некоторые дополнительные условия для фильтрации качества сигнала, например, в сочетании с равнолинейной системой, такими показателями, как RSI, или с учетом ценовых поворотов, формы линейки и т. Д., Чтобы повысить выигрыш и надежность сигнала.
  3. Управление позициями: в настоящее время стратегия использует пропорции фиксированных средств для определения количества покупок. Можно рассмотреть оптимизацию для более динамичной модели управления позициями, например, для корректировки количества покупок за каждый раз в зависимости от ценовых колебаний, кривой чистой стоимости счетов и других факторов.
  4. Многоразовая совместная работа: идея этой стратегии может быть использована для нескольких разновидностей и может быть более эффективной с помощью анализа взаимосвязи между разновидностями и управления распределением средств.

Подвести итог

Эта стратегия использует краткосрочное падение цены выше определенного диапазона в качестве сигнала покупки, чтобы воспользоваться шансом на отскок цены. Логика проста и понятна. Преимущества стратегии заключаются в том, чтобы улавливать тенденции и контролировать риски, но также следует обращать внимание на риски, такие как частота торговли, глубокое отступление и колебания цен. В будущем можно провести дальнейшую оптимизацию и улучшение стратегии с точки зрения оптимизации убытков, сигналов фильтрации, управления позициями и многообразия.

Исходный код стратегии
/*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")