Тенденция в соответствии со стратегией, основанной на скользящей средней

Автор:Чао Чжан, Дата: 2023-12-20 14:23:49
Тэги:

img

Обзор

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

Принцип стратегии

Стратегия в основном оценивает следующие условия и генерирует сигнал покупки, когда они выполняются одновременно:

  1. Текущая цена акций выше как 150-дневных, так и 200-дневных скользящих средних.
  2. 150-дневная скользящая средняя выше 200-дневной скользящей средней.
  3. 200-дневная скользящая средняя имеет тенденцию к росту в течение как минимум 1 месяца.
  4. 50-дневная скользящая средняя выше как 150-дневных, так и 200-дневных скользящих средних.
  5. Текущая цена акций выше 50-дневной скользящей средней.
  6. Нынешняя цена акций на 25% выше 52-недельного минимума.
  7. Нынешняя цена акций находится на отметке не менее 25% от 52-недельного максимума.

Когда вышеперечисленные условия выполнены, стратегия оценивает, что цена акций находится в восходящей тенденции и генерирует сигнал покупки.

Кроме того, стратегия также устанавливает линию стоп-лосса. Когда цена акций падает на 5% от своего пика или повышается на 10%, она прекращает потерю или получает прибыль.

Анализ преимуществ

  1. Используйте идеи Марка Минервини по выбору акций для повышения прибыльности.
  2. Используйте несколько скользящих средних, чтобы подтвердить тенденцию и избежать пропусков покупательных точек.
  3. Установите механизм стоп-лосса, чтобы избежать больших потерь.

Анализ рисков

  1. Цены на акции могут корректироваться в краткосрочной перспективе, вызывая стоп-лосс.
  2. Движущиеся средние не могут полностью определить тенденции, и могут возникнуть ложные прорывы.
  3. Установленные коэффициенты стоп-лосса и прибыли не являются идеальными, они могут преждевременно увеличивать прибыль или расширять убытки.

Оптимизация

  1. Испытать комбинации скользящих средних с различными параметрами.
  2. Добавить другие технические показатели для определения сроков входа.
  3. Оптимизируйте параметры стоп-лосса и дохода.

Резюме

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


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)

Больше