
Эта стратегия является многоголовой/пустой стратегией, основанной на скрещивании простых скользящих средних (SMA). Она использует два различных цикла SMA для создания торговых сигналов. Она генерирует многоголовый сигнал, когда быстрый SMA проходит медленный SMA с нижнего направления; она генерирует пустой сигнал, когда быстрый SMA проходит медленный SMA с верхнего направления.
Ключевой принцип этой стратегии заключается в том, чтобы использовать SMA для создания сделок с использованием перекрестных сигналов. SMA - это индикатор трендового отслеживания, который определяет общее направление цены путем усреднения цен на закрытие за прошедший период времени. Используя два различных цикла SMA, стратегия может улавливать изменения в тенденции рынка.
Стратегия использует концепцию возврата прибыли для управления размером позиции. Она рассчитывает размер позиции на основе текущего баланса счета и накопленной прибыли. Это означает, что, по мере роста баланса счета, стратегия соответствующим образом увеличивает размер позиции, что позволяет максимизировать потенциал прибыли.
Простая и понятная: Стратегия основана на SMA-пересечениях, это простая и понятная стратегия для отслеживания тенденций. Она не требует сложного рыночного понимания времени или субъективного суждения, что делает стратегию легкой для реализации и управления.
Следить за тенденциями: используя SMA-кросс, стратегия может эффективно улавливать рыночные тенденции. Она может совершать многоочередные сделки во время восходящих тенденций, а в ходе нисходящих тенденций проводить свободные сделки, тем самым максимизируя потенциал прибыли.
Динамическое управление позициями: стратегия использует концепцию возврата прибыли для управления размером позиций. Стратегия может эффективно использовать преимущества роста счета и повысить его прибыльность, изменяя размер позиции в зависимости от баланса счета и динамики накопленной прибыли.
Эластичность: стратегия может быть применена на различных рынках и в различных классах активов, таких как акции, иностранные валюты, товары и т. д. Ее простота и адаптивность делают ее универсальной торговой стратегией.
Рыночный риск: стратегия зависит от постоянства рыночных тенденций. В случае рыночных колебаний или обратного тренда стратегия может понести убытки. Неожиданные события, публикация экономических данных и другие факторы могут привести к изменениям в рыночных тенденциях, что может негативно повлиять на стратегию.
Параметрический риск: эффективность стратегии зависит от выбранного периода в SMA. Различные комбинации периодов могут привести к разным результатам. Неправильно выбранные параметры могут привести к плохой эффективности стратегии или упущенной торговой возможности.
Переторгирование: во время рыночных колебаний частое пересечение SMA может привести к переторгированию, увеличению затрат на торговлю и скольжения, что может повлиять на общую эффективность стратегии.
Риск возврата: хотя возврат может повысить прибыльность стратегии, он также увеличивает риск потери. В случае непрерывных потерь баланс счета может быстро сокращаться, что ограничивает способность стратегии восстановиться.
Параметрическая оптимизация: оптимизация цикла SMA для поиска оптимальной комбинации параметров для повышения эффективности стратегии. Можно использовать исторические данные для отслеживания и использовать оптимизационные алгоритмы, такие как поиск по сетке или генетические алгоритмы, для поиска оптимальных параметров.
Управление рисками: внедрение мер по управлению рисками, таких как остановки и остановки, для ограничения убытков на одной сделке и защиты прибыли. Уровни остановки и остановки могут быть скорректированы в соответствии с динамикой волатильности рынка, чтобы адаптироваться к различным рыночным условиям.
Тренд-фильтрация: помимо пересечения SMA, ввод других признаков признания тренда, таких как MACD или ADX, для фильтрации ложных сигналов и повышения качества сигнала. Для повышения надежности стратегии, торги должны проводиться только тогда, когда несколько показателей одновременно подтверждают тренд.
Оптимизация управления позициями: правила управления позициями для оптимизации стратегий прибыли и прибыли, такие как введение мер по контролю риска, ограничение рисковых выходов для отдельных сделок. Можно рассмотреть возможность использования формулы Келли или фиксированного процента риска для определения размера позиции для каждой сделки, чтобы сбалансировать риск и отдачу.
Стратегия является основанной на SMA-крестке стратегии отслеживания тенденций, использующей концепцию рекуперации для управления размером позиции. Ее преимущества заключаются в том, что она проста и понятна, обладает мощными возможностями отслеживания тенденций, динамичным управлением позицией и адаптивностью. Однако она также сталкивается с такими проблемами, как рыночный риск, риск параметров, переторгов и риск рекуперации.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Umesh SMA Crossover Strategy", overlay=true)
// Input parameters
fast_length = input.int(9, title="Fast SMA Length")
slow_length = input.int(21, title="Slow SMA Length")
// Calculate SMAs
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)
// Plot SMAs
plot(fast_sma, color=color.blue, title="Fast SMA")
plot(slow_sma, color=color.red, title="Slow SMA")
// Strategy logic
longCondition = ta.crossover(fast_sma, slow_sma)
shortCondition = ta.crossunder(fast_sma, slow_sma)
// Initialize cumulative profit with netprofit
var float cumulative_profit = na
if (na(cumulative_profit))
cumulative_profit := strategy.netprofit
// // Initialize starting balance
// var float starting_balance = na
// if (na(starting_balance))
// starting_balance := strategy.equity
// Initialize starting balance
var float starting_balance = na
if (na(starting_balance))
starting_balance := 100000.0 // Initial balance
// Calculate profit or gains
if (strategy.opentrades != 0)
cumulative_profit := strategy.netprofit + (strategy.equity - starting_balance)
// Calculate position size based on current balance and cumulative profit
//position_size = 100000
position_size = starting_balance + cumulative_profit
// Entry conditions
if (longCondition)
strategy.entry("Long", strategy.long, qty = position_size / close)
if (shortCondition)
strategy.entry("Short", strategy.short, qty = position_size / close)
// // Entry conditions
// if (longCondition)
// strategy.entry("Long", strategy.long, qty = 100000 / close)
// if (shortCondition)
// strategy.entry("Short", strategy.short, qty = 100000 / close)
// Plot strategy.equity
plot(strategy.equity, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = strategy.equity, text = str.tostring(strategy.equity), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(cumulative_profit, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = cumulative_profit, text = str.tostring(cumulative_profit), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)
// Plot cumulative profit
plot(position_size, color=color.green, title="Cumulative Profit")
// Print cumulative profit value on chart
label.new(x = bar_index, y = position_size, text = str.tostring(position_size), style=label.style_label_down, color=color.new(color.green, 0), size=size.small)