Прозрачная стратегия стоп-профита и стоп-лосса на основе скользящей средней и скользящей средней


Дата создания: 2023-12-21 12:26:18 Последнее изменение: 2023-12-21 12:26:18
Копировать: 0 Количество просмотров: 625
1
Подписаться
1623
Подписчики

Прозрачная стратегия стоп-профита и стоп-лосса на основе скользящей средней и скользящей средней

Обзор

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

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

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

Стратегия состоит из четырех основных частей:

  1. Система равнолинейности

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

  1. Мобильная остановка остановки

Использование мобильного стоп-лосса с определенной долей для блокировки прибыли и контроля риска, для динамичного управления средствами.

  1. Фильтр позиций

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

  1. Прекращение ATR

Используйте ATR, чтобы ограничить максимальный объем остановки и избежать чрезмерной остановки.

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

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

Основные преимущества этой стратегии:

  1. Конфигурируемость

Многие параметры в стратегии являются конфигурируемыми, пользователи могут корректировать их в соответствии со своим стилем торговли.

  1. Хорошее управление деньгами

Применение мобильных стоп-стоп и ATR-стоп позволяет эффективно контролировать размер однократных стоп-стоп и обеспечивает хорошее управление деньгами.

  1. Подходит для рынка трендов

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

Риски и противодействие

Однако есть и другие риски, связанные с этой стратегией, в частности:

  1. Ошибки в оценке тенденций

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

  1. Слишком радикальная деградация

Мобильный стоп может быть отклонен при колебаниях, в сочетании с ATR параметром следует установить пределы стоп-ущерба.

  1. Риск одностороннего открытия позиции

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

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

Основными направлениями оптимизации стратегии являются:

  1. Параметры оптимизации

Настройка параметров, таких как средняя продолжительность, ATR, Stop Loss Ratio, оптимизация эффективности стратегии.

  1. Добавление показателей

Добавить CMF, OBV и другие показатели для определения направления денежных потоков, чтобы избежать чрезмерных потерь.

  1. Сочетание с другими стратегиями

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

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

В целом, эта стратегия реализует динамическое управление капиталом, основанное на тенденциях, с помощью однородной фильтрации и мобильного стоп-стоп. Конфигурируемость и рациональность. Инвесторы могут использовать ее в соответствии со своим стилем.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MGULHANN

//@version=5

//İchimoku Leading Span 2 Hesaplaması ve Girişleri
strategy("Stairs Gain Strategy - MG", overlay=true, margin_long=100, margin_short=100)
laggingSpan2Periods = input.int(52, minval=1, title="Leading Periot")
displacement = input.int(1, minval=1, title="Displacement")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
leadLine2 = donchian(laggingSpan2Periods)
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")

// İşlem Tekrarını Filtrele	 
filtreUygula = input.bool(true,title="Pozisyon Sıra Filtresi Uygula")

//Kar Al / Zarar Durdur Seviyeleri Girişleri
zararDurdurmaYuzde = input.float(1.0, title='Zarar Durdurma %', step=0.01) / 100
karAlmaYuzde = input.float(2.0, title='Kar Alma %', step=0.01) / 100

//ATR Hesaplaması
atrCarpani = input.float(0.3, title="ATR Çarpanı", step= 0.01)
atrDegeri = ta.atr(14) * atrCarpani

//ATR Değer Girişleri
atrbuyukdeger = input.float(0.01, title="ATR Üst Limit", step=0.01)
atrkucukdeger = input.float(0.06, title="ATR Alt Limit", step=0.01)

//Buy ve Sell Şartları
buycross =   ta.crossover(close,leadLine2[displacement-1]) ? atrDegeri > atrbuyukdeger : strategy.position_size == 0
sellcross = ta.crossover(leadLine2[displacement-1],close) ? atrDegeri < atrkucukdeger : strategy.position_size == 0

//KONTROL
var sonPozisyonYonu = 0
//Son kapanan pozisyon long ise degiskenin degerini 1 olarak ata
if strategy.position_size[1] > 0 and strategy.position_size == 0
    sonPozisyonYonu := 1

//Son kapanan pozisyon short ise degiskenin degerini -1 olarak ata
if strategy.position_size[1] < 0 and strategy.position_size == 0
    sonPozisyonYonu := -1
    
//eger filtre uygulama seçiliyse ve son pozisyon yönü long ise 'longFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun long olmasını engelle
longFiltreSonuc = filtreUygula ? sonPozisyonYonu == 1 ? false : true : true

//eger filtre uygulama seçiliyse ve son pozisyon yönü short ise 'shortFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun short olmasını engelle
shortFiltreSonuc = filtreUygula ? sonPozisyonYonu == -1 ? false : true : true

//LONG GİRİŞ
strategy.entry("Long", strategy.long, when=buycross and longFiltreSonuc)
longKarAl = strategy.position_avg_price * (1 + karAlmaYuzde)
longZararDurdur = strategy.position_avg_price * (1 - zararDurdurmaYuzde)
strategy.exit("Long Exit","Long",limit=longKarAl, stop=longZararDurdur)

//SHORT GİRİŞ
strategy.entry("Short", strategy.short, when=sellcross and shortFiltreSonuc)
shortKarAl = strategy.position_avg_price * (1 - karAlmaYuzde)
shortZararDurdur = strategy.position_avg_price * (1 + zararDurdurmaYuzde)
strategy.exit("Short Exit","Short",limit=shortKarAl, stop=shortZararDurdur)

//Kar Al ve Zarar Durdur Seviyelerinin Grafikte İşaretlenmesi
plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.navy, linewidth=2, style=plot.style_linebr, title="İşleme Giriş Seviyesi")
plot(strategy.position_size > 0 ? longKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Long Kar Alım Seviyesi")
plot(strategy.position_size > 0 ? longZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Long Zarar Durdurma Seviyesi")
plot(strategy.position_size < 0 ? shortKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Short Kar Alım Seviyesi")
plot(strategy.position_size < 0 ? shortZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Short Zarar Durdurma Seviyesi")

//plotshape(buycross,size=size.small,style=shape.labelup,location=location.belowbar,color=color.green,text="Al", offset = displacement-1, textcolor=color.white)
//plotshape(sellcross,size=size.small,style=shape.labeldown,location=location.abovebar,color=color.red,text="Sat", offset = displacement-1, textcolor=color.white)