Tài nguyên đang được tải lên... tải...

ahr999 chiến lược đặt cược

Tác giả:ChaoZhang, Ngày: 2021-07-19 00:05:35
Tags:Được hỗ trợ thương mại

AHR999 Mean Reversion Strategy AHR999, AHR999X, Trung bình điều chỉnh, Giá số, Giá trị ròng

####Tầm nhìn chung Chiến lược này dựa trên các chỉ số AHR999 và AHR999X. Bằng cách so sánh giá hiện tại với giá trung bình hài hòa và giá logarithmic, nó xác định xem Bitcoin có bị mua quá nhiều hay bán quá nhiều hay không, và theo đó tiến hành các hoạt động đầu tư cố định và đánh bắt đáy. Trong khi đó, chiến lược cũng đặt ra điều kiện kiếm lợi nhuận để bán một phần khi chỉ số AHR999X nằm dưới một ngưỡng nhất định.

### Nguyên tắc chiến lược

  1. Tính toán trung bình hài hòa của giá Bitcoin trong lịch sử như một tham chiếu cho giá cân bằng dài hạn.
  2. Tính toán giá logaritm tương ứng dựa trên số ngày kể từ khi sinh ra Bitcoin như một tham chiếu cho giá xu hướng dài hạn.
  3. Tính toán chỉ số AHR999 hiện tại, là sản phẩm của tỷ lệ giá hiện tại với giá trung bình hài hòa và giá logaritm.
  4. Tính toán chỉ số AHR999X hiện tại, bằng 3 lần tỷ lệ giá trung bình hài hòa với giá hiện tại nhân tỷ lệ giá logaritm với giá hiện tại.
  5. Dựa trên giá trị của chỉ số AHR999, xác định xem có nên thực hiện đầu tư cố định hay đánh bắt đáy.
  6. Dựa trên giá trị của chỉ số AHR999X, xác định xem có nên lấy lợi nhuận hay không. Khi AHR999X dưới ngưỡng đã thiết lập, bán một tỷ lệ nhất định của vị trí.

### Phân tích lợi thế

  1. Chiến lược dựa trên giá cân bằng dài hạn của Bitcoin và giá xu hướng, với một cơ sở lý thuyết và khả năng giải thích nhất định.
  2. Việc đưa ra trung bình hài hòa làm giảm tác động của biến động ngắn hạn, làm cho phán đoán mạnh mẽ hơn.
  3. Bằng cách kết hợp các chỉ số AHR999 và AHR999X, nó có thể nắm bắt tốt hơn tình trạng mua quá mức và bán quá mức của Bitcoin và thời điểm lấy lợi nhuận.
  4. Đầu tư cố định và đánh bắt đáy được kết hợp để dần dần xây dựng các vị trí khi giá tương đối bị đánh giá thấp, dẫn đến chi phí tương đối thấp.
  5. Hoạt động lấy lợi nhuận được thiết lập để đạt được lợi nhuận nhất định khi giá tương đối được đánh giá quá cao trong khi giữ lại hầu hết các vị trí tăng giá dài hạn.

### Phân tích rủi ro

  1. Chiến lược dựa trên các chỉ số AHR999 và AHR999X. Nếu chuyển động giá tương lai của Bitcoin thay đổi đáng kể, khiến hai chỉ số này thất bại, chiến lược có thể phải đối mặt với rủi ro lớn hơn.
  2. Trung bình hài hòa nhạy cảm với độ dài của giá lịch sử. Nếu khoảng thời gian giá lịch sử được chọn không đủ hợp lý, nó có thể ảnh hưởng đến hiệu suất của chiến lược.
  3. Việc tính toán giá logaritm dựa trên số ngày kể từ khi sinh ra Bitcoin. Nếu xu hướng tăng trưởng dài hạn của Bitcoin thay đổi, giá logaritm có thể mất ý nghĩa tham chiếu của nó.
  4. Chiến lược này có thể đối mặt với nguy cơ không đủ nguồn lực cho việc đánh bắt đáy khi giá tương đối cao, dẫn đến việc không thể xây dựng các vị trí kịp thời.
  5. Hoạt động lấy lợi nhuận có thể khiến chiến lược mất một số lợi nhuận nếu giá tiếp tục tăng.

###Hướng tối ưu hóa

  1. Tối ưu hóa các ngưỡng của các chỉ số AHR999 và AHR999X để tìm các khoảng thời gian phù hợp nhất cho đầu tư cố định, đánh bắt đáy và thu lợi nhuận.
  2. Đưa ra nhiều chỉ số hơn, chẳng hạn như khối lượng giao dịch và biến động, để giúp đánh giá xu hướng và tình trạng mua quá mức / bán quá mức.
  3. Tối ưu hóa phương pháp tính toán của trung bình hài hòa, chẳng hạn như điều chỉnh thích hợp trọng lượng của giá lịch sử để giảm sự phụ thuộc vào giá lịch sử xa.
  4. Điều chỉnh năng động số tiền đầu tư cố định và đánh bắt đáy, tăng đầu tư khi giá thấp hơn và giảm đầu tư khi giá cao hơn.
  5. Tối ưu hóa hoạt động lấy lợi nhuận, chẳng hạn như điều chỉnh năng động dựa trên xu hướng giá và chi phí vị trí để cân bằng lợi nhuận và rủi ro.

###Tóm lại Chiến lược đảo ngược trung bình AHR999 xác định tình trạng mua quá mức và bán quá mức của Bitcoin bằng cách so sánh giá hiện tại với giá cân bằng lịch sử và giá xu hướng, và tiến hành các hoạt động đầu tư cố định, đánh bắt đáy và thu lợi nhuận. Chiến lược này có một cơ sở lý thuyết và có thể giải thích được. Bằng cách kết hợp hai chỉ số, nó có thể nắm bắt tốt hơn các mô hình biến động giá của Bitcoin. Tuy nhiên, chiến lược cũng phải đối mặt với rủi ro về sự thất bại của chỉ số, lựa chọn tham số và quản lý quỹ, đòi hỏi tối ưu hóa và cải thiện liên tục trong thực tế. Nhìn chung, Chiến lược đảo ngược trung bình AHR999 cung cấp một ý tưởng khả thi cho đầu tư giá trị dài hạn trong Bitcoin.


/*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);
	}
}


Có liên quan

Thêm nữa