A estratégia de negociação da média móvel do rácio dourado é uma estratégia de negociação quantitativa que tenta usar a cruz de ouro das médias móveis de curto e longo prazo como sinais de negociação.
A estratégia é baseada principalmente em duas médias móveis: a MA de 200 dias como a MA de longo prazo e a MA de 10 dias como a MA de curto prazo. Um sinal de compra é gerado quando a MA de curto prazo cruza a MA de longo prazo; Um sinal de venda é gerado quando a MA de curto prazo cruza abaixo da MA de longo prazo. Esta é a famosa
Especificamente, uma posição longa será aberta se estiverem preenchidas as seguintes condições:
As condições de encerramento da posição são as seguintes:
A estratégia apresenta as seguintes vantagens:
A estratégia apresenta também alguns riscos:
Para reduzir estes riscos, podem ser consideradas as seguintes medidas de otimização:
A estratégia pode ser ainda melhorada:
Em resumo, a estratégia de negociação da média móvel da proporção dourada é uma estratégia simples e eficaz de tendência. Ela gera oportunidades de negociação usando sinais de cruzamento MA clássicos e tem paradas para controlar riscos. A estratégia pode ser melhorada através de combinações de múltiplos indicadores, otimização de parâmetros, aprendizado de máquina, etc. para obter um melhor desempenho da estratégia.
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00: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/ // © tsujimoto0403 //@version=5 strategy("聖杯", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100) //ユーザーインプットの準備 malongperiod=input.int(200,"長期移動平均BASE200",group = "パラメータ") mashortperiod=input.int(10,"長期移動平均BASE10",group = "パラメータ") stop=input.int(20,title = "損切の割合%",group = "パラメータ") profit=input.int(5,title = "利食いの割合%",group = "パラメータ") startday=input(title="バックテストを始める日", defval=timestamp("01 Jan 2018 13:30 +0000"), group="期間") endday=input(title="バックテスを終わる日", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間") //使う変数 var float stopprice=0 var float takeprofit=0 //とりあえず使うインジケーターをプロット malong=ta.sma(close,malongperiod) mashort=ta.sma(close,mashortperiod) plot(malong,color=color.aqua,linewidth = 2) plot(mashort,color=color.yellow,linewidth = 2) bgcolor(ta.rsi(close,3)<30?color.rgb(229, 86, 86, 48):na) //期間条件 datefilter = true //エントリー条件 if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30 strategy.entry(id="long", direction=strategy.long) if strategy.position_size>0 strategy.exit(id="long",stop=(1-0.01*stop)*strategy.position_avg_price) //売り if strategy.position_size > 0 and close>mashort and close<low[1] strategy.close(id ="long")