Esta estratégia é uma estratégia de tendência baseada no indicador CCI. Gerar sinais de negociação através do monitoramento do cruzamento entre dois CCIs de diferentes prazos. Especificamente, irá detectar se um CCI de período mais curto quebra um CCI de período mais longo e determinar posições longas ou curtas com base na direção de ruptura.
A lógica central desta estratégia é a seguinte:
Regras longas específicas:
Regras curtas específicas:
A Comissão concluiu que o auxílio não é seletivo e que, por conseguinte, não pode ser considerado compatível com o mercado interno.
As vantagens desta estratégia:
Há também alguns riscos:
Soluções:
Áreas em que a estratégia pode ser melhorada:
Em conclusão, esta é uma estratégia simples de tendência baseada no cruzamento CCI. Pode identificar efetivamente a direção da tendência e seguir as tendências. Enquanto isso, controla o risco através de stop loss. Esta estratégia é simples, prática, flexível no ajuste de parâmetros e pode servir como uma estratégia de quantidade inicial. Pode ser aprimorada em um sistema mais poderoso através de otimização e combinação adicionais.
/*backtest start: 2023-10-24 00:00:00 end: 2023-11-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="my work",calc_on_order_fills=true,currency=currency.USD, default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent) source = close shortlength=input(14) longlength=input(56) aa=input(2) Ss=input(75) //Cci part ci1=cci(source,shortlength) //4시간봉의 기본 cci ci2=cci(source,longlength) //4시간봉에서 12시봉의 cci 무빙측정 //오린간 선생님의 WT + ichimoku len = input(10) lenTurn = input(9) lenStd = input(26) wtm_e(so, l) => esa = ema(so, l) d = ema(abs(so - esa), l) ci = (so - esa) / (0.015 * d) ema(ci, l*2+1) alh(len) => avg(lowest(len), highest(len)) alh_src(src, len) => avg(lowest(src, len), highest(src, len)) wt = wtm_e(close,len) turn = alh_src(wt, lenTurn) std = alh_src(wt, lenStd) cnt = 0 if wt > turn cnt:=cnt+1 if wt > std cnt:=cnt+1 //100,-100선 h0 = hline(100) h1 = hline(-100) //plot(ci,color=green) // plot(k,color=green) // plot(d,color=red) plot(ci1,color=green) plot(ci2,color=red) plot(0,color=black) plot(100,color=black) plot(-100,color=black) fill(h0,h1,color=purple,transp=95) bgcolor(cnt==0 ? red : cnt==1 ? blue : cnt == 2 ? green : na, transp = Ss) //기간조정 Fromday = input(defval=1, title="from day", minval=1, maxval=31) FromMonth = input(defval=1, title="from month", minval=1, maxval=12) FromYr = input(defval=2019, title="from yr", minval=1970) Today = input(defval=13, title="to day", minval=1, maxval=31) ToMonth = input(defval=12, title="to month", minval=1, maxval=12) ToYr = input(defval=2019, title="to yr", minval=1970) startDate = timestamp(FromYr, FromMonth, Fromday, 00, 00) finishDate = timestamp(ToYr, ToMonth, Today, 00, 00) Time_cond = true /////롱 if crossover(ci1,ci2) and change(ci2)>0 and Time_cond strategy.entry("go", strategy.long, comment="go") strategy.close("go", (ci2<0 and ci1 <-50 and change(ci1)<0) or (crossunder(ci1,-100) and strategy.openprofit<0) and change(cnt)<0) /////숏 if (crossunder(ci1,ci2) and change(ci2)<0 and falling(ci1,aa)) and Time_cond strategy.entry("die", strategy.short, comment="die") strategy.close("die", (ci2>0 and ci1 > 100 and change(ci1)>0) or (crossover(ci2,100) and strategy.openprofit<0) and change(cnt)>0)