
Двухлинейная перекрестная стратегия является относительно простой количественной торговой стратегией. Она используется для вычисления средних цен закрытия последних 7 K-линий и средних цен закрытия 20 K-линий, которые делают больше, когда краткосрочная средняя линия пересекает долгосрочную среднюю линию снизу, а когда краткосрочная средняя линия пересекает долгосрочную среднюю линию сверху вниз, чтобы захватить переломные моменты среднесрочной тенденции рынка.
Центральная логика этой стратегии заключается в том, чтобы рассчитывать среднюю цену закрытия на последних 7 K-линий (без учета текущих K-линий) как краткосрочную среднюю цену, а среднюю цену закрытия на 20 K-линий (без учета последних 7 K-линий) как долгосрочную среднюю цену. Когда краткосрочная средняя линия сверху пересекает долгосрочную среднюю цену, это означает, что рынок выиграл; когда краткосрочная средняя линия сверху пересекает долгосрочную среднюю цену, это означает, что рынок выиграл.
После того, как будет задействовано много сигналов, открывайте позиции большего количества по всем средствам счета; после того, как будет задействовано много сигналов, открывайте позиции большего количества по всем позициям, а затем открывайте позиции большего количества по этому количеству. Каждая позиция после открытия позиции будет держать 20-25 K-линий, в течение этого периода, если произойдет убыток, будет прекращено половину позиции, если произойдет достаточная прибыль, будет прекращено половину позиции.
Это очень простая стратегия двойного равномерного скрещивания, преимущества которой заключаются в следующем:
Это более простая стратегия отслеживания тенденций, но она также имеет некоторые потенциальные риски:
Оптимизировать эти риски можно следующими способами:
Это более простая стратегия двойного равнолинейного перекрестного взаимодействия, которая может быть глубоко оптимизирована в следующих аспектах:
оптимизация среднелинейных параметров, тестирование различных комбинаций среднелиней в краткосрочной и долгосрочной перспективе для поиска оптимальных параметров;
добавление других фильтрующих показателей, таких как показатели количественной энергии, показатели волатильности и т. д., чтобы избежать ошибочных сигналов в условиях нестабильного рынка;
оптимизация стратегии стоп-стоп, тестирование различных стоп-стоп-пропорций и определение оптимальных параметров;
тестирование различных рыночных циклов, оптимизация длины длительности позиций и определение того, в каких циклах стратегия будет наиболее эффективной;
Добавление алгоритмов машинного обучения для постоянной оптимизации параметров стратегии с помощью обратного тестирования, что делает стратегию более стабильной.
Эта стратегия представляет собой более простую стратегию с двумя равнолинейными перекрестками, которая определяет промежуточные трендовые переломы, рассчитывая равнолинейные перекрестки разных циклов. Эта стратегия очень практична и проста в использовании. Однако у этой стратегии есть определенные ограничения, главная проблема заключается в том, что она не может эффективно определять реальные рыночные переломы.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
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/
// © nrathi2211
//@version=5
strategy("Closing Prices", overlay=true)
//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000
//functions
qty_find(float price) => capital / int(price)
profit_take() =>
profit = strategy.opentrades.profit(strategy.opentrades - 1)
profit*.95
if(closingB7 < closingB14)
if(ta.crossover(close, closingB7))
strategy.entry("long_buy", strategy.long, qty_find(close))
current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
if(current_profit < 0)
strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
else if(current_profit < profit_take())
strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
if(ta.crossunder(close, closingB7))
strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)
plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)