O recurso está a ser carregado... Carregamento...

Ahr999 estratégia de investimento

Autora:ChaoZhang, Data: 2021-07-19 00:05:35
Tags:Ajudados no comércio

AHR999 estratégia de reversão AHR999, AHR999X, média de reconciliação, preço de logaritmo, valor líquido

####Visão geral Esta estratégia é baseada nos indicadores AHR999 e AHR999X. Ao comparar o preço atual com o preço médio harmónico e o preço logarítmico, determina se o Bitcoin está sobrecomprado ou sobrevendido, e, consequentemente, realiza operações de investimento fixo e pesca de fundo. Enquanto isso, a estratégia também define uma condição de lucro para vender parcialmente quando o indicador AHR999X está abaixo de um certo limiar.

Princípio de Estratégia

  1. Calcule a média harmônica dos preços históricos do Bitcoin como referência para o preço de equilíbrio a longo prazo.
  2. Calcule o preço logarítmico correspondente com base no número de dias desde o nascimento do Bitcoin como uma referência para o preço de tendência de longo prazo.
  3. Calcular o indicador AHR999 corrente, que é o produto da relação entre o preço corrente e o preço médio harmónico e o preço logarítmico.
  4. Calcular o indicador actual AHR999X, que é 3 vezes a relação do preço médio armônico com o preço corrente multiplicado pela relação do preço logarítmico com o preço corrente.
  5. Com base no valor do indicador AHR999, determinar se se deve realizar um investimento fixo ou uma pesca de fundo.
  6. Com base no valor do indicador AHR999X, determine se deve ou não obter lucro.

Análise de Vantagens

  1. A estratégia baseia-se no preço de equilíbrio e no preço de tendência de longo prazo do Bitcoin, com uma certa base teórica e interpretabilidade.
  2. A introdução da média harmónica reduz o impacto das flutuações de curto prazo, tornando o julgamento mais robusto.
  3. Ao combinar os indicadores AHR999 e AHR999X, ele pode capturar melhor o status de sobrecompra e sobrevenda do Bitcoin e o momento da obtenção de lucros.
  4. O investimento fixo e a pesca de fundo são combinados para construir gradualmente posições quando os preços estão relativamente subvalorizados, resultando em custos relativamente baixos.
  5. A operação de captação de lucro está destinada a obter certos rendimentos quando os preços estão relativamente sobrevalorizados, mantendo a maioria das posições para apreciação a longo prazo.

Análise de Risco

  1. A estratégia baseia-se nos indicadores AHR999 e AHR999X. Se o movimento futuro do preço do Bitcoin mudar significativamente, fazendo com que esses dois indicadores falhem, a estratégia pode enfrentar riscos maiores.
  2. A média harmônica é sensível à duração dos preços históricos.
  3. O cálculo do preço logarítmico é baseado no número de dias desde o nascimento do Bitcoin.
  4. A estratégia pode correr o risco de não haver fundos suficientes para a pesca de fundo, quando os preços são relativamente elevados, o que conduz à impossibilidade de construir posições em tempo útil.
  5. A operação de take-profit pode fazer com que a estratégia perca alguns ganhos se os preços continuarem a subir.

Direcção de otimização

  1. Otimizar os limiares dos indicadores AHR999 e AHR999X para encontrar os intervalos mais adequados para o investimento fixo, a pesca de fundo e a obtenção de lucros.
  2. Introduzir mais indicadores, como o volume de negociação e a volatilidade, para ajudar a avaliar as tendências e os estados de sobrecompra/supervenda.
  3. Otimizar o método de cálculo da média harmónica, como ajustar adequadamente os pesos dos preços históricos para reduzir a dependência dos preços históricos distantes.
  4. Ajustar dinamicamente o montante do investimento fixo e da pesca de fundo, aumentando o investimento quando os preços são mais baixos e reduzindo o investimento quando os preços são mais elevados.
  5. Otimizar a operação de captação de lucro, como o ajustamento dinâmico com base nas tendências de preços e nos custos de posição para equilibrar os retornos e os riscos.

Resumo A estratégia de reversão média AHR999 determina o estado de sobrecompra e sobrevenda do Bitcoin, comparando o preço atual com o preço de equilíbrio histórico e o preço de tendência, e conduz operações de investimento fixo, pesca de fundo e lucro. Esta estratégia tem uma certa base teórica e interpretabilidade. Ao combinar dois indicadores, pode capturar melhor os padrões de flutuação de preços do Bitcoin. No entanto, a estratégia também enfrenta riscos em termos de falha de indicadores, seleção de parâmetros e gerenciamento de fundos, exigindo otimização e melhoria contínua na prática.


/*backtest
start: 2018-04-14 00:00:00
end: 2021-07-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":1000000,"stocks":0}]
*/

/*
 * @Project:
 * @Version:
 * @Author: RedSword <coo@fmz.com>
 * @Description:
 * @Date: 2021-07-19 11:02:43
 * @LastEditors: RedSword
 * @LastEditTime: 2021-07-19 15:55:16
 * @Copyright:: Copyright © 2020 FMZ Quant
 * 感谢ahr999大神,后续完善可以加入一些理财,币和钱都闲着,收益会低一点,也可以放到bitfinex放借贷,年化也有十几的收益,还可以放大资金,买了币以后,就去交割合约做多,暂时想到这么多,希望大家多多交流
 * 参考:
 * https://github.com/who3m1/ahr999-mixin
 * https://btctom.com/ahr999
 * https://btctom.com/ahr999x
 */

function harmonicMean(x) {
	if (x.length === 0) {
		return undefined;
	}
	var reciprocalSum = 0;
	for (var i = 0; i < x.length; i++) {
		if (x[i] <= 0) {
			return undefined;
		}
		reciprocalSum += 1 / x[i];
	}
	return x.length / reciprocalSum;
}
function GetNowPrice() {
	var ticker = exchange.GetTicker();
	return ticker.Last;
}
function GetPrices() {
	var records = exchange.GetRecords(PERIOD_D1);
	var prices = [];
	for (let i = 0; i < records.length; i++) {
		const record = records[i];
		// Log(record);
		prices.push(record.Close);
	}
	return prices;
}

function CalcAHR999() {
	var now = parseInt(Unix());
	var prices = GetPrices();
	var avgPrice = harmonicMean(prices);
	var nowPrice = GetNowPrice();
	var birthday = (now - 1230940800) / (24 * 60 * 60);
    var logPrice = Math.pow(10, 5.84 * Math.log10(parseInt(birthday)) - 17.01);
	//2020-4-16 13:16 以后使用新的指标
	//https://weibo.com/5034063086/IDzPWyN8Z?from=page_1005055034063086_profile&wvr=6&mod=weibotime
	if (now > 1587014160) {
		logPrice = Math.pow(10, 5.8 * Math.log10(parseInt(birthday)) - 16.88);
	}
	var ahr999 = Math.round((nowPrice / avgPrice) * (nowPrice / logPrice) * 1000) / 1000;
	var ahr999x = Math.round((avgPrice / nowPrice) * (logPrice / nowPrice) * 3 * 1000) / 1000;
	return {
		ahr999: ahr999,
		ahr999x: ahr999x,
	};
}

function init() {
	exchange.SetMaxBarLen(200);
	if (exchange.GetCurrency().indexOf("BTC_USD") == -1) {
		throw "只支持BTC交易对";
	}
}
function UpdateStatus(account, nowPrice) {
	var table = {
		type: "table",
		title: "持仓信息",
		cols: ["定投币种", "初始净值", "当前净值", "定投次数", "持仓数量", "持仓均价", "当前价格", "累计定投", "可用资金", "盈利率%"],
		rows: [],
	};

	var netValue = account.Balance + account.Stocks * nowPrice;
	table.rows.push([
		exchange.GetCurrency(),
		InitMoney,
		_N(netValue, 2),
		Global.number,
		_N(account.Stocks, 6),
		_N((InitMoney - account.Balance) / account.Stocks, 2),
		nowPrice,
		_N(Global.number * Money, 2),
		_N(account.Balance, 2),
		_N((netValue / InitMoney) * 100),
	]);
	LogStatus("`" + JSON.stringify(table) + "`");
}
var Global = {
	upTime: 0, //循环间隔
	number: 0, //定投次数
	multipleNumber: 0, //抄底次数
};

function main() {
	while (true) {
		var now = parseInt(Unix());
		if (now > Global.upTime) {
			var price = GetNowPrice();
			var account = exchange.GetAccount();
			var ahr999 = CalcAHR999();
			Global.upTime = now + 3600 * Interval;
			if (ahr999.ahr999 >= Bottom && ahr999.ahr999 < Top) {
				if (Money > account.Balance) continue;
				Log("开始定投");
				exchange.Buy(-1, Money);
				Global.number++;
			} else if (ahr999.ahr999 < Bottom) {
				if (Money * Multiple > account.Balance) continue;
				Log("开始抄底");
				exchange.Buy(-1, Money * Multiple);
				Global.number += Multiple;
			}
			if (TakeProfit & (ahr999.ahr999x < TakeProfitLine)) {
				Log("开始顶逃");
				var sell = Global.number * TakeProfitRate * Money;
				var coinNumber = sell / price;
				exchange.Sell(-1, coinNumber);
			}
			UpdateStatus(account, price);
		}
		Sleep(1000);
	}
}


Relacionados

Mais.