Стратегия "Серебряная линия"

Автор:Чао Чжан, Дата: 2024-02-01 15:01:55
Тэги:

img

Обзор

Эта стратегия представляет собой стратегию прорыва, основанную на индикаторе динамики цен MACD и скользящей средней, подходящей для 1-часового периода времени на серебро (XAG/USD, XAG/EUR).

Логика стратегии

Когда гистограмма MACD меняется с отрицательной на положительную и непрерывно прорывается через линию сигнала, это указывает на то, что краткосрочный восходящий тренд сильнее. В то же время, если цена закрытия прорывается через растущую тенденцию скользящей средней, она генерирует длинный сигнал. Аналогично, когда гистограмма MACD меняется с положительной на отрицательную и падает ниже линии сигнала, а цена закрытия падает ниже нисходящей тенденции скользящей средней, она генерирует короткий сигнал.

В частности, условия для определения длинного входного сигнала этой стратегии следуют:

  1. Гистограмма MACD положительная
  2. Нынешняя панель гистограммы выше предыдущей
  3. Цена закрытия выше скользящей средней
  4. Цена закрытия выше, чем самая высокая цена последних 3 линий K.

Условия для определения короткого входного сигнала прямо противоположные.

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

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

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

Никакое определение получения прибыли и стоп-лосса не отвечает потребностям инвесторов, стремящихся к высокой доходности.

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

Отсутствие стоп-лосса может легко привести к фиксации потерь и более высокому риску потери.

Способ безусловного закрытия на следующей линии K затрудняет непрерывное извлечение прибыли от тренда.

Советы по оптимизации

Для снижения риска потерь можно рассмотреть возможность добавления соответствующих стратегий стоп-лосса на основе прорывных покупок с высокой прибылью.

Также можно использовать передовые методы для повторного вхождения в позиции после закрытия, пытаясь непрерывно получать прибыль от тренда.

Резюме

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


/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-13 05:20: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/
// © SoftKill21

//@version=4
strategy("XAG strategy 1h",overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
var gica = 0
var marcel = gica+2
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
len = input(10, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)

//distanta = input(1.004)

fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

option1=input(true)
option2=input(true)

long2 =  close > open  and time_cond and close > out and hist > 0 and hist > hist[1] 
short2 =  close < open  and time_cond and close < out and hist < 0 and hist < hist[1] 

long1 = (close > open ) and time_cond and close > out and hist > 0 and  hist > hist[1] and high > high[1] and high[1] > high[2] and close > high[1] and close > high[2] and close > high[3] 
short1 = (close < open)  and time_cond and close < out and hist < 0 and  hist < hist[1] and low < low[1] and low[1] < low[2]  and close < low[1] and close < low[2] and close < low[3] 

if(option1)
    strategy.entry("long",1,when= short1)
    strategy.entry("short",0,when=long1)
    strategy.close_all()

if(option2)

    strategy.entry("long",1,when= short2)
    strategy.entry("short",0,when=long2)
    strategy.close_all()

// if(strategy.openprofit < 0)
//     strategy.close_all()
// if(strategy.openprofit>0)
//     strategy.close("long",when = close < open )
//     strategy.close("short",when = close > open)
//     strategy.close("long",when= close < open)
//     strategy.close("short",when= close> open)


// tp = input(0.0003)
// sl = input(0.005)
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")


Больше