Эта стратегия разрабатывает простую систему автоматической торговли на основе индикатора STOCH. Она подходит для Форекс, фондовых индексов, сырьевых товаров и может быть расширена на акции и крипто рынки.
Эта стратегия идентифицирует состояние перекупленности и перепроданности с использованием индикатора STOCH в сочетании с точками PIVOT для установки позиций стоп-лосса, реализуя следующий тренд. Она становится длинной или короткой, когда индикатор STOCH показывает сигналы перекупленности или перепроданности. Точки стоп-лосса устанавливаются вблизи точек PIVOT дня для эффективного контроля рисков. Точки частичной прибыли устанавливаются для закрытия частичных позиций после определенного уровня прибыли.
Эта стратегия использует пересечение линий %K и %D индикатора STOCH для генерации длинных и коротких сигналов. В частности, когда линия %K пересекает линию %D, она будет длинной. Когда линия %K пересекает линию %D, она будет короткой. Это фиксирует состояние перекупа и перепродажи.
Для контроля рисков, длинная точка остановки потерь устанавливается вблизи дневного наименьшего PIVOT-точка и короткая точка остановки потерь устанавливается вблизи дневного наивысшего PIVOT-точки.
Для частичного получения прибыли он закрывает 50% позиции после определенного уровня прибыли после открытия позиции.
В целом, эта стратегия соответствующим образом улавливает перекупленные и перепроданные точки; контролирует риски с помощью стоп-лосса; и оптимизирует эффективность использования капитала.
Использование индикатора STOCH эффективно фиксирует состояние перекупленных и перепроданных.
Механизм частичного получения прибыли оптимизирует эффективность использования капитала.
Настраиваемые параметры обеспечивают гибкость, основанную на рыночных условиях и предпочтениях риска.
Простая и понятная логика, легкая для понимания и освоения для всех трейдеров.
Как стратегия, следующая за трендом, она может застрять на рынках с ограниченным диапазоном и не принести прибыли.
STOCH может генерировать ложные сигналы, вызывая ненужные сделки.
Стоп-лосс вблизи поворотов может быть слишком близко после прорыва.
Некоторые параметры, такие как период, могут нуждаться в корректировке для разных рынков, иначе это влияет на эффективность стратегии.
Backtest опирается только на исторические данные, не может гарантировать будущую производительность.
Автоторговые системы требуют стабильных соединений, чтобы избежать проблем с исполнением торгов.
Добавьте фильтр тренда, чтобы избежать торговли без четких тенденций.
Добавьте анализ объема, чтобы обнаружить ложные прорывы и избежать ловушек.
Настройка параметров, таких как входы STOCH, на основе различных продуктов и временных рамок для оптимизации производительности.
Рассмотрим алгоритмы машинного обучения для обучения моделей с использованием больших данных и автоматической оптимизации параметров.
Установите коэффициент коэффициента прибыли, чтобы ввести контроль рисков и избежать больших потерь в сделках.
Добавьте больше фильтров, таких как условия торговли, основы, чтобы улучшить процент выигрыша.
Эта стратегия использует простой и интуитивно понятный подход, основанный на индикаторе STOCH для выявления перекупленных/перепроданных точек. С помощью PIVOT стоп-лосс для контроля риска и частичного получения прибыли для оптимизации эффективности капитала. Дизайн охватывает Capture, Control и Optimize. Логика проста и настраиваема. Но она также имеет некоторые риски и может быть дополнительно оптимизирована. Постоянное тестирование и улучшение в живой торговле имеет решающее значение для устойчивой прибыльности.
/*backtest start: 2022-09-21 00:00:00 end: 2023-09-27 00:00:00 period: 1d basePeriod: 1h 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/ // © Peter_O //@version=4 // strategy(title="TradingView Alerts to MT4 MT5 - Forex, indices, commodities, stocks, crypto", commission_type=strategy.commission.cash_per_contract, commission_value=0.00003, overlay=false, default_qty_value=20000, initial_capital=1000) // // This script was created for educational purposes only. // It is showing how to use Alerts-Straight-From-Strategies and // dynamic variables in TradingView alerts. // And how to auto-execute them in Forex, indices, commodities markets // // (This method will also work with stocks and crypto - anything your // broker is offering via their MT4/MT5 platform). TakeProfitLevel=input(400) TakePartialProfitLevel=input(150) // **** Entries logic **** { periodK = input(13, title="K", minval=1) periodD = input(3, title="D", minval=1) smoothK = input(4, title="Smooth", minval=1) k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) plot(k, title="%K", color=color.blue) plot(d, title="%D", color=color.orange) h0 = hline(80) h1 = hline(20) fill(h0, h1, color=color.purple, transp=75) GoLong=crossover(k,d) and k<80 and year>2009 GoShort=crossunder(k,d) and k>20 and year>2009 AlertTest=open>close or open<close or open==close // } End of entries logic // **** Pivot-points and stop-loss logic **** { piv_high = pivothigh(high,1,1) piv_low = pivotlow(low,1,1) var float stoploss_long=low var float stoploss_short=high pl=valuewhen(piv_low,piv_low,0) ph=valuewhen(piv_high,piv_high,0) if GoLong stoploss_long := low<pl ? low : pl if GoShort stoploss_short := high>ph ? high : ph // } End of Pivot-points and stop-loss logic // **** Trade counter and partial closing mechanism **** { var int trade_id=0 if GoLong or GoShort trade_id:=trade_id+1 TakePartialProfitLong = barssince(GoLong)<barssince(GoShort) and crossover(high,(valuewhen(GoLong,close,0)+TakePartialProfitLevel*syminfo.mintick)) TakePartialProfitShort = barssince(GoLong)>barssince(GoShort) and crossunder(low,(valuewhen(GoShort,close,0)-TakePartialProfitLevel*syminfo.mintick)) // } End of Trade counter and partial closing mechanism strategy.entry("Long", strategy.long, when=GoLong) strategy.exit("XPartLong", from_entry="Long", qty_percent=50, profit=TakePartialProfitLevel) strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel) strategy.entry("Short", strategy.short, when=GoShort) strategy.exit("XPartShort", from_entry="Short", qty_percent=50, profit=TakePartialProfitLevel) strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel) if GoLong alertsyntax_golong='long slprice=' + tostring(stoploss_long) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel) alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close) if GoShort alertsyntax_goshort='short slprice=' + tostring(stoploss_short) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel) alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close) if TakePartialProfitLong alertsyntax_closepartlong='closepart tradeid=' + tostring(trade_id) + ' part=0.5' alert(message=alertsyntax_closepartlong, freq=alert.freq_once_per_bar_close) if TakePartialProfitShort alertsyntax_closepartshort='closepart tradeid=' + tostring(trade_id) + ' part=0.5' alert(message=alertsyntax_closepartshort, freq=alert.freq_once_per_bar_close)