Эта стратегия открывает позиции, основанные на золотом кресте и смертном кресте скользящих средних, и настраивает получение прибыли и остановку убытков на пол.
Стратегия состоит из четырех частей:
Система скользящих средних
Используйте золотой крест и смертельный крест скользящих средних для определения тенденций и фильтрации шоков.
Переезд приносит прибыль и не приносит убытков
Используйте получение прибыли и стоп-лосс с определенным процентом, чтобы зафиксировать прибыль и контролировать риски, реализуя динамическое управление капиталом.
Фильтрация положения
Если предыдущая позиция длинная, следующий сигнал должен быть коротким, чтобы открыть позицию, избегая одностороннего удержания.
ATR Stop Loss
Использовать ATR для ограничения максимального диапазона стоп-потери и избежать чрезмерной стоп-потери.
В частности, стратегия сначала рассчитывает скользящую среднюю, длинные на золотом кресте, и короткие на смертном кресте. После входа, установите движущиеся линии получения прибыли и остановки убытков с определенным процентом. Если цена касается линии получения прибыли, то возьмите прибыль; если касается линии остановки убытка или превышает диапазон остановки убытка ATR, то остановите убыток.
Основными преимуществами этой стратегии являются:
Высокая настраиваемость
Многие параметры в стратегии могут быть настроены для пользователей, чтобы регулировать их на основе их торговых стилей.
Хорошее управление капиталом
Принятие движущегося сбора прибыли и стоп-лосса и ATR стоп-лосса может эффективно контролировать амплитуду одного стоп-лосса и достичь отличного управления капиталом.
Подходит для рынка с тенденциями
Стратегия скользящей средней сама по себе более подходит для сильных тенденций рынков для эффективной фильтрации шоков.
В этой стратегии также есть некоторые риски:
Ошибочная оценка тенденции
В данный момент скользящие средние параметры должны быть соответствующим образом скорректированы или другие показатели могут быть объединены для оценки тенденций.
Чрезмерная стоп-лосс
Движущаяся стоп-потеря может быть отменена при ударах. Параметры ATR должны быть объединены для установки диапазона стоп-потерь.
Односторонние риски открытия
Разрешение на фильтрацию позиций окажет некоторое влияние на частоту торговли.
Основными направлениями оптимизации являются:
Оптимизация параметров
Корректировать цикл скользящей средней, параметры ATR, коэффициенты получения прибыли и остановки убытков и другие параметры для оптимизации эффективности стратегии.
Добавление показателей
Добавьте такие показатели, как CMF, OBV, чтобы оценить поток капитала и избежать чрезмерного стоп-лосса.
Сочетание с другими стратегиями
Сочетать с стратегиями прорыва, чтобы следовать тенденциям после того, как тенденция стабилизируется, чтобы достичь лучших результатов.
В целом, благодаря фильтру скользящей средней и движущемуся получению прибыли и стоп-лос, эта стратегия реализует динамическое управление капиталом на основе тенденций. Она имеет высокую конфигуративность, подходящую для рациональных инвесторов для корректировки и использования в соответствии со своими стилями. Как универсальная количественная стратегия, она все еще имеет большой потенциал для оптимизации и заслуживает глубокого исследования.
/*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)