রিসোর্স লোড হচ্ছে... লোডিং...

ahr999 নির্ধারিত পণ কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২১-০৭-১৯ 00:05:35
ট্যাগঃবাণিজ্যিকভাবে সহায়ক

AHR999 Mean Reversion কৌশল AHR999, AHR999X, সমন্বয় গড়, অ্যালগরিদম দাম, নেট মূল্য

####অভারভিউ এই কৌশলটি এএইচআর৯৯৯ এবং এএইচআর৯৯৯এক্স সূচকগুলির উপর ভিত্তি করে। বর্তমান দামটি হারমোনিক গড় মূল্য এবং লগারিদমিক দামের সাথে তুলনা করে এটি নির্ধারণ করে যে বিটকয়েনটি ওভারকুপড বা ওভারসোল্ড হয়েছে কিনা, এবং সেই অনুযায়ী স্থির বিনিয়োগ এবং নীচের মাছ ধরার ক্রিয়াকলাপ পরিচালনা করে। এদিকে, কৌশলটি এএইচআর৯৯এক্স সূচকটি একটি নির্দিষ্ট প্রান্তিকের নীচে থাকলে আংশিকভাবে বিক্রি করার জন্য লাভের শর্তও নির্ধারণ করে।

#### কৌশল নীতি

  1. দীর্ঘমেয়াদী ভারসাম্য মূল্যের জন্য একটি রেফারেন্স হিসাবে বিটকয়েনের ঐতিহাসিক মূল্যের হারমোনিক গড় গণনা করুন।
  2. দীর্ঘমেয়াদী প্রবণতা মূল্যের জন্য একটি রেফারেন্স হিসাবে বিটকয়েনের জন্মের পর থেকে দিনের সংখ্যার উপর ভিত্তি করে সংশ্লিষ্ট লোগারিদমিক মূল্য গণনা করুন।
  3. বর্তমান AHR999 সূচক গণনা করুন, যা বর্তমান মূল্যের হারমোনিক গড় মূল্য এবং লোগারিদমিক মূল্যের অনুপাতের পণ্য।
  4. বর্তমান AHR999X সূচকটি গণনা করুন, যা বর্তমান মূল্যের সাথে হারমোনিক গড় মূল্যের অনুপাতের 3 গুণ, বর্তমান মূল্যের সাথে লগারিদমিক মূল্যের অনুপাত দ্বারা গুণিত।
  5. AHR999 সূচকের মানের উপর ভিত্তি করে নির্ধারণ করুন যে স্থির বিনিয়োগ বা তল মাছধরা করা হবে কিনা। স্থির বিনিয়োগ করা হয় যখন AHR999 একটি নির্দিষ্ট পরিসরের মধ্যে থাকে এবং তল মাছধরা করা হয় যখন এটি নিম্ন সীমাটির নীচে থাকে।
  6. AHR999X সূচকের মানের উপর ভিত্তি করে, লাভ নেবেন কিনা তা নির্ধারণ করুন। যখন AHR999X নির্ধারিত প্রান্তিকের নিচে থাকে, তখন অবস্থানের একটি নির্দিষ্ট অংশ বিক্রি করুন।

###সুবিধার বিশ্লেষণ

  1. কৌশলটি একটি নির্দিষ্ট তাত্ত্বিক ভিত্তি এবং ব্যাখ্যাযোগ্যতার সাথে বিটকয়েনের দীর্ঘমেয়াদী ভারসাম্য মূল্য এবং প্রবণতা মূল্যের উপর ভিত্তি করে।
  2. হারমোনিক গড়ের প্রবর্তন স্বল্পমেয়াদী ওঠানামা প্রভাব হ্রাস করে, যা বিচারকে আরও শক্তিশালী করে তোলে।
  3. AHR999 এবং AHR999X সূচকগুলিকে একত্রিত করে, এটি বিটকয়েনের অত্যধিক ক্রয় এবং অত্যধিক বিক্রয়ের অবস্থা এবং মুনাফা গ্রহণের সময়কে আরও ভালভাবে ক্যাপচার করতে পারে।
  4. স্থির বিনিয়োগ এবং তল মাছধরা ধীরে ধীরে অবস্থান তৈরি করতে একত্রিত হয় যখন দামগুলি তুলনামূলকভাবে কম মূল্যায়ন করা হয়, যার ফলে তুলনামূলকভাবে কম ব্যয় হয়।
  5. লভ্যাংশ গ্রহণের অপারেশনটি দীর্ঘমেয়াদী মূল্য বৃদ্ধির জন্য বেশিরভাগ পজিশন ধরে রেখে যখন দামগুলি তুলনামূলকভাবে অতিরঞ্জিত হয় তখন নির্দিষ্ট রিটার্ন অর্জন করতে সেট করা হয়।

#### ঝুঁকি বিশ্লেষণ

  1. কৌশলটি AHR999 এবং AHR999X সূচকগুলির উপর নির্ভর করে। যদি বিটকয়েনের ভবিষ্যতের মূল্য আন্দোলন উল্লেখযোগ্যভাবে পরিবর্তিত হয়, যার ফলে এই দুটি সূচক ব্যর্থ হয়, কৌশলটি বৃহত্তর ঝুঁকির মুখোমুখি হতে পারে।
  2. হারমোনিক গড়টি ঐতিহাসিক মূল্যের দৈর্ঘ্যের প্রতি সংবেদনশীল। যদি নির্বাচিত ঐতিহাসিক মূল্য ব্যবধান যথেষ্ট যুক্তিসঙ্গত না হয়, তবে এটি কৌশলটির কার্যকারিতা প্রভাবিত করতে পারে।
  3. লগারিদমিক মূল্যের হিসাব বিটকয়েনের জন্মের পর থেকে দিনের সংখ্যার উপর ভিত্তি করে করা হয়। যদি বিটকয়েনের দীর্ঘমেয়াদী বৃদ্ধির প্রবণতা পরিবর্তিত হয়, তবে লগারিদমিক মূল্য তার রেফারেন্স গুরুত্ব হারাতে পারে।
  4. এই কৌশলটি যখন দাম তুলনামূলকভাবে উচ্চ হয় তখন তল মাছ ধরার জন্য পর্যাপ্ত তহবিলের ঝুঁকি থাকতে পারে, যার ফলে সময়মতো অবস্থান তৈরি করা অসম্ভব।
  5. যদি দাম বাড়তে থাকে তবে লাভের অপারেশনটি কৌশলটি কিছু লাভ হারাতে পারে।

####অপ্টিমাইজেশান দিক

  1. স্থির বিনিয়োগ, তল মাছধরা এবং মুনাফা অর্জনের জন্য সবচেয়ে উপযুক্ত সময়সীমা খুঁজে পেতে AHR999 এবং AHR999X সূচকগুলির প্রান্তিককে অনুকূল করা।
  2. ট্রেডিং ভলিউম এবং অস্থিরতার মতো আরও সূচক প্রবর্তন করুন, যা প্রবণতা এবং অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয়ের অবস্থা বিচার করতে সহায়তা করে।
  3. হারমোনিক গড়ের হিসাব পদ্ধতিকে অপ্টিমাইজ করুন, যেমন দূরবর্তী ঐতিহাসিক মূল্যের উপর নির্ভরতা হ্রাস করার জন্য ঐতিহাসিক মূল্যের ওজনগুলি যথাযথভাবে সামঞ্জস্য করা।
  4. স্থির বিনিয়োগের পরিমাণ এবং নীচের মাছ ধরার পরিমাণকে গতিশীলভাবে সামঞ্জস্য করুন, দাম কম হলে বিনিয়োগ বাড়ান এবং দাম বেশি হলে বিনিয়োগ হ্রাস করুন।
  5. মুনাফা অর্জনের অপারেশনকে অপ্টিমাইজ করুন, যেমন দামের প্রবণতা এবং ঝুঁকিগুলি তুলনা করার জন্য অবস্থান ব্যয়গুলির উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্য করা।

####সংক্ষিপ্তসার AHR999 Mean Reversion Strategy বর্তমান মূল্যকে ঐতিহাসিক ভারসাম্য মূল্য এবং প্রবণতা মূল্যের সাথে তুলনা করে বিটকয়েনের ঊর্ধ্বক্রয় এবং ঊর্ধ্ব বিক্রয় স্থিতি নির্ধারণ করে এবং স্থির বিনিয়োগ, নীচের মাছধরা এবং লাভ গ্রহণের ক্রিয়াকলাপ পরিচালনা করে। এই কৌশলটির একটি নির্দিষ্ট তাত্ত্বিক ভিত্তি এবং ব্যাখ্যাযোগ্যতা রয়েছে। দুটি সূচককে একত্রিত করে এটি বিটকয়েনের দামের ওঠানামা প্যাটার্নগুলি আরও ভালভাবে ক্যাপচার করতে পারে। তবে, কৌশলটি সূচক ব্যর্থতা, পরামিতি নির্বাচন এবং তহবিল পরিচালনার ক্ষেত্রেও ঝুঁকির মুখোমুখি হয়, যা বাস্তবে অবিচ্ছিন্ন অপ্টিমাইজেশন এবং উন্নতির প্রয়োজন। সামগ্রিকভাবে, AHR999 Mean Reversion Strategy বিটকয়েনে দীর্ঘমেয়াদী মান বিনিয়োগের জন্য একটি কার্যকর ধারণা সরবরাহ করে।


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


সম্পর্কিত

আরো