Стратегия паттерна разворотной скользящей свечи


Дата создания: 2024-01-26 16:04:26 Последнее изменение: 2024-01-26 16:04:26
Копировать: 1 Количество просмотров: 578
1
Подписаться
1617
Подписчики

Стратегия паттерна разворотной скользящей свечи

Обзор

Стратегия автоматически торгует, идентифицируя пассивные формы, реализуя отслеживание торговых сигналов и в сочетании с логикой стоп-стоп-лосс. При выявлении реверсивной формы делается дополнительный пробой, достигается плавное положение после остановки или стоп-лосса.

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

  1. Идентификация криптовалютной формы: криптовалютная структура считается сигналом для отслеживания торговли, когда ее размер меньше, чем установленная криптовалюта, и цена открытия торгового дня равна цене закрытия.

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

  3. Стоп-стоп: стоп-стоп после увеличения, когда цена достигает входной цены плюс стоп-стоп; стоп-стоп после разрыва, когда цена достигает входной цены и снижает стоп-стоп; стоп-стоп после увеличения, когда цена вызывает стоп-стоп.

Стратегические преимущества

  1. Используя обратную форму, можно эффективно улавливать поворотные моменты цен на акции и повышать эффективность торговых сигналов.

  2. В сочетании с механизмом остановки и остановки можно эффективно контролировать риски, блокировать прибыль и избегать расширения убытков.

  3. Автоматизация транзакций без вмешательства человека, снижение стоимости транзакций и повышение эффективности транзакций.

Стратегический риск

  1. Существует определенная субъективность, которая может привести к ошибочному суждению.

  2. Неправильно настроенная точка остановки может привести к пропуску крупного события или преждевременной остановке.

  3. Параметры стратегии должны постоянно тестироваться и оптимизироваться, в противном случае это может привести к пересоответствию.

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

  1. Оптимизация форм суждения, в сочетании с дополнительными K-линейными показателями, повышает точность суждения.

  2. Тестирование различных торговых сортов, корректировка стоп-стоп-стоп-стоп, оптимизация параметров.

  3. Добавление алгоритмов для определения большего количества торговых сигналов, обогащение стратегической логики.

  4. Добавлен модуль управления позициями, позволяющий динамически корректировать позиции в зависимости от референтных показателей.

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

Эта стратегия позволяет автоматизировать торговлю путем распознавания обратного сигнала в виде криптовалюты, установки правил стоп-стоп-лосс. Стратегия проста и понятна, имеет некоторую практическую ценность. Однако необходимо повысить точность распознавания и оптимизировать параметры, и рекомендуется провести дальнейшие испытания и оптимизацию, прежде чем рекомендовать ее применение на рынке.

Исходный код стратегии
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/01/2019
//   This is a candlestick where the open and close are the same. 
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Doji Backtest", overlay = true)
input_takeprofit = input(10, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
input_minsizebody = input(0.5, title="Min. Size Body pip", step=0.01)
barcolor(abs(close - open) <= input_minsizebody ? open == close ? yellow : na : na)
possell = 0.0
posbuy = 0.0
pospricebuy = 0.0
pospricesell = 0.0
barcolornow = blue
pospricesell := close< close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) 
possell := iff(pospricesell > 0 , -1, 0)
barcolornow := possell == -1 ? red: posbuy == 1 ? green : blue 
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricebuy := close > close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) 
posbuy := iff(pospricebuy > 0 , 1, 0)
barcolornow := posbuy == 1 ? green: barcolornow
pospricebuy := iff(high >= pospricebuy + input_takeprofit and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricebuy := iff(low <= pospricebuy - input_stoploss and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
barcolor(barcolornow)
if (posbuy == 0 and possell == 0) 
    strategy.close_all()
if (posbuy == 1)
    strategy.entry("Long", strategy.long)
if (possell == -1)
    strategy.entry("Short", strategy.short)	   	    
pospricebuy := iff(high <= pospricebuy + input_takeprofit and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricebuy := iff(low >= pospricebuy - input_stoploss and pospricebuy > 0, 0 ,  nz(pospricebuy, 0))
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 ,  nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 ,  nz(pospricesell, 0))