দাম হয় উপরে বা নীচে। দীর্ঘমেয়াদে, দামের বৃদ্ধি এবং পতনের সম্ভাবনা 50% হওয়া উচিত, সুতরাং ভবিষ্যতের দাম সঠিকভাবে পূর্বাভাস দেওয়ার জন্য, আপনাকে রিয়েল টাইমে দামকে প্রভাবিত করে এমন সমস্ত কারণগুলি পেতে হবে এবং তারপরে প্রতিটি কারণকে সঠিক ওজন দিতে হবে এবং অবশেষে উদ্দেশ্যমূলক এবং যুক্তিসঙ্গত বিশ্লেষণ করতে হবে। দামকে প্রভাবিত করে এমন সমস্ত কারণ তালিকাভুক্ত করতে, এটি পুরো মহাবিশ্বটি পূরণ করতে পারে।
সংক্ষেপে বলা যায়ঃ বিশ্ব অর্থনৈতিক পরিবেশ, জাতীয় ম্যাক্রো নীতিমালা, সংশ্লিষ্ট শিল্প নীতিমালা, সরবরাহ ও চাহিদার সম্পর্ক, আন্তর্জাতিক ঘটনা, সুদের হার ও বিনিময় হার, মুদ্রাস্ফীতি ও ডিফ্লেশন, বাজার মনোবিজ্ঞান, এবং অন্যান্য অজানা কারণ ইত্যাদি। ভবিষ্যদ্বাণী একটি বিশাল এবং অসম্ভব কাজ হয়ে উঠেছে। তাই খুব তাড়াতাড়ি, আমি বুঝতে পেরেছিলাম যে বাজার অনির্দেশ্য। তারপর বাজারে সমস্ত ভবিষ্যদ্বাণী অনুমান হয়ে উঠেছে, এবং ট্রেডিং সম্ভাবনা একটি খেলা হয়ে উঠেছে, যা আকর্ষণীয়।
যেহেতু বাজারটি অনির্দেশ্য, তাই কি এটি সত্যিই উদাসীন? না, সমস্ত ম্যাক্রো এবং মাইক্রো ফ্যাক্টরগুলি মূল্যে প্রতিফলিত হয়েছে, যার অর্থ হল যে দামটি সমস্ত কারণের মিথস্ক্রিয়াটির ফলাফল। আমাদের কেবল একটি সম্পূর্ণ ট্রেডিং কৌশল তৈরির জন্য মূল্য বিশ্লেষণ করতে হবে।
আগে ভাবুন, কেন দাম বাড়ছে?
আপনি বলতে পারেন, কারণঃ দেশটি প্রাসঙ্গিক শিল্প নীতি সমর্থন করে, উত্সের দেশটি ঝড়ো বৃষ্টি, আন্তর্জাতিক বাণিজ্য যুদ্ধ, এমএসিডি গোল্ডেন ফর্ক কেনা হয়, অন্যরা এটি কিনেছে ইত্যাদি। অবশ্যই, এগুলি ভুল নাও হতে পারে। পশ্চাদপসরণে, আমরা সর্বদা দাম বৃদ্ধির কারণগুলি খুঁজে পেতে পারি।
প্রকৃতপক্ষে, দামের উত্থান এবং পতন উত্থান জোয়ারের অনুরূপ। মূল্য বৃদ্ধি তহবিলের প্রচারের সাথে অবিচ্ছেদ্য। বাজারে, যদি বিক্রেতাদের চেয়ে ক্রেতাদের সংখ্যা বেশি হয় তবে দাম বাড়বে। বিপরীতভাবে, যদি ক্রেতাদের চেয়ে বিক্রেতাদের সংখ্যা বেশি হয় তবে দাম কমবে। এই ধারণার সাহায্যে আমরা তহবিলের নেট প্রবাহের মধ্যে প্রতিফলিত সরবরাহ এবং চাহিদার সম্পর্কের উপর ভিত্তি করে ভবিষ্যতের দামের প্রবণতার জন্য যুক্তিসঙ্গত প্রত্যাশা দিতে পারি।
ঐতিহ্যগত বিশ্লেষণের থেকে ভিন্ন, তহবিল প্রবাহ বিশ্লেষণ বিশ্লেষণ করে যে কোন লেনদেন একটি নির্দিষ্ট সময়ের মধ্যে লেনদেনের তথ্যের উপর ভিত্তি করে তহবিলের সক্রিয় প্রবাহ এবং কোন লেনদেনগুলি তহবিলের সক্রিয় প্রবাহ। তারপর, এই সময়ের মধ্যে সক্রিয় প্রবাহের পরিমাণ থেকে সক্রিয় প্রবাহের পরিমাণ বিয়োগ করে, আমরা এই সময়ের মধ্যে তহবিলের নেট প্রবাহ জানতে পারি। যদি তহবিলের নেট প্রবাহ ইতিবাচক হয় তবে এর অর্থ এই পণ্যটির সরবরাহের অভাব রয়েছে; যদি তহবিলের নেট প্রবাহের অর্থ এই পণ্যটির সরবরাহের অতিরিক্ত সরবরাহ রয়েছে।
এটি পড়ার পরে, কিছু লোক ভাবতে পারে যে প্রকৃত লেনদেনগুলিতে, কেবল তখনই একটি চুক্তি করা হবে যখন কেউ কিনে এবং কেউ বিক্রি করে। লেনদেনের অর্ডারে ক্রয়ের পরিমাণের মতোই বিক্রয় পরিমাণ থাকতে হবে এবং তহবিলগুলি একই পরিমাণে প্রবেশ এবং প্রস্থান করতে হবে। মূলধনের প্রবাহ এবং প্রবাহ কোথা থেকে আসে? আসলে, কঠোরভাবে বলতে গেলে, প্রতিটি ক্রয় আদেশের সাথে একটি সংশ্লিষ্ট বিক্রয় আদেশের সাথে সামঞ্জস্য থাকতে হবে, এবং মূলধন প্রবাহ এবং মূলধন প্রবাহ সমান হতে হবে। যদি আমরা গণনা করতে চাই যে কোন আদেশ সক্রিয়ভাবে কেনা হয় এবং কোন আদেশ সক্রিয়ভাবে বিক্রি হয়, আমরা কেবল একটি আপস পদ্ধতি ব্যবহার করতে পারি, K লাইন বার ডেটা ব্যবহার করে, লেনদেনের পরিমাণ এবং দামের উপর ভিত্তি করে।
তহবিলের প্রবাহের পরিবর্তনটি রিয়েল-টাইম বাজারের আচরণের সাথে নির্ভুলভাবে মিলে যায় এবং তহবিলের নেট প্রবাহটি কে লাইন বার ডেটা সংহত করে রিয়েল-টাইমে গণনা করা হয়। তহবিলের সক্রিয় প্রবাহ গণনা করার জন্য দুটি অ্যালগরিদম রয়েছেঃ
প্রথমত, যদি বর্তমান অর্ডারের বর্তমান লেনদেনের মূল্য প্রতিপক্ষের মূল্যে বা অতিরিক্ত মূল্যে কার্যকর করা হয়, তবে ক্রয় লেনদেনের মূল্য >= বিক্রয় লেনদেনের মূল্য, যার অর্থ ক্রেতা একটি উচ্চতর মূল্যে লেনদেন সম্পন্ন করতে আরও ইচ্ছুক, যা সক্রিয় তহবিল প্রবাহের অন্তর্ভুক্ত।
দ্বিতীয়ত, যদি বর্তমান লেনদেনের মূল্য সর্বশেষ লেনদেনের মূল্যের চেয়ে বেশি হয়, তাহলে বোঝা যায় যে বর্তমান লেনদেনের পরিমাণ সক্রিয়ভাবে মূল্য বৃদ্ধিকে বাড়িয়ে তোলে, যা তহবিলের সক্রিয় প্রবাহের অন্তর্ভুক্ত।
উদাহরণস্বরূপ উপরের দ্বিতীয় অ্যালগরিদমটি নিনঃ
10:00 এ একটি নির্দিষ্ট পণ্যের বন্ধের মূল্য 3450 এবং 11:00 এ বন্ধের মূল্য 3455 তাই আমরা সক্রিয় মূলধন প্রবাহ হিসাবে 10:00 থেকে 11:00 এর মধ্যে লেনদেনের পরিমাণ অন্তর্ভুক্ত করব। অন্যথায়, এটি তহবিলের উদ্যোগ প্রবাহের মধ্যে অন্তর্ভুক্ত। এই নিবন্ধটি দ্বিতীয় পদ্ধতির উপর ভিত্তি করে, মূল্যের অস্থিরতার ফ্যাক্টর যুক্ত করে। এর আগে এবং পরে কে লাইন বার বন্ধের দামের তুলনা করে, ক্রমবর্ধমান বা হ্রাসকারী কে লাইন বার * অস্থিরতার ভলিউম একটি ক্রম অন্তর্ভুক্ত করা হয়, এবং তারপরে ক্রম অনুসারে তহবিলের সক্রিয় প্রবাহ অনুপাত গণনা করুন।
এই নিবন্ধটি
মূল্যবৃদ্ধি এবং একক সময় প্রতি সক্রিয় নেট তহবিল প্রবাহঃ এই পরিস্থিতি শক্তিশালী, এবং ভবিষ্যতে মূল্য বৃদ্ধি অব্যাহত থাকবে আরো সম্ভবত;
শেয়ারের মূল্য বৃদ্ধি পায় এবং একক সময়ের জন্য সক্রিয় নেট ফান্ড আউটফ্লো হয়ঃ এই ক্ষেত্রে এটি একটি মাঝারি-শক্তিশালী অবস্থান, এবং ভবিষ্যতে মূল্য বৃদ্ধির হার উল্লেখযোগ্যভাবে হ্রাস পাবে;
শেয়ারের দাম কমেছে, যখন একক সময়ের জন্য সক্রিয় নেট তহবিলের প্রবাহঃ এটি একটি দুর্বল পরিস্থিতি, এবং ভবিষ্যতের দাম আরও কমতে থাকবে;
শেয়ারের মূল্য হ্রাস পায়, এবং একই সাথে একক সময়ের জন্য সক্রিয় নেট তহবিল প্রবাহঃ এই ক্ষেত্রে, এটি একটি মাঝারিভাবে দুর্বল অবস্থান, এবং ভবিষ্যতে দামের হ্রাসের হার উল্লেখযোগ্যভাবে হ্রাস পাবে;
পূর্ববর্তী সর্বনিম্ন (ll) পূর্ববর্তী সর্বোচ্চ (hh) সক্রিয় ক্রয় (বাল্ট ইন) সক্রিয় বিক্রয় (বারআউট) সক্রিয় তহবিল প্রবাহের অনুপাত সক্রিয় তহবিল প্রবাহের অনুপাত (barRatio) ওপেন পজিশন থ্রেশহোল্ড (openValve) বর্তমান হোল্ডিং পজিশন (myAmount) সর্বশেষ K-লাইন বন্ধের মূল্য (বন্ধ)
একটি ভাল পরিমাণগত ট্রেডিং কৌশল শুধুমাত্র স্থিতিশীল রিটার্ন প্রয়োজন, কিন্তু ঝুঁকি নিয়ন্ত্রণ এবং একটি ছোট সম্ভাবনা আছে যখন বড় ক্ষতি এড়ানোর ক্ষমতা। এখানে আমরা সক্রিয় তহবিল প্রবাহ ট্র্যাকিং কৌশল ব্যবহার, স্বল্পমেয়াদী মূল্য পূর্বাভাসের সাহায্যে পণ্য ফিউচার দিক বিশ্লেষণ, যাতে উচ্চ মুনাফা এবং কম ঝুঁকি প্রভাব অর্জন করতে।
লং পজিশন খোলাঃ যদি বর্তমান হোল্ডিং পজিশন না থাকে, এবং barRatio > openValve, লং পজিশন খুলুন;
শর্ট পজিশন খোলাঃ যদি বর্তমান হোল্ডিং পজিশন না থাকে এবং barRatio < 1 / openValve থাকে, তাহলে শর্ট পজিশন খুলুন;
লং পজিশন বন্ধঃ যদি বর্তমান লং পজিশনটি ধরে রাখা হয় এবং বন্ধ করা হয়, তাহলে লং পজিশনটি বিক্রি করে বন্ধ করা হবে।
শর্ট পজিশন বন্ধঃ যদি বর্তমান শর্ট পজিশনটি ধরে রাখা হয় এবং বন্ধ করা হয় > hh, শর্ট পজিশনটি কিনুন এবং বন্ধ করুন;
তথ্য সংগ্রহ এবং গণনা
function data() {
var self = {};
var barVol = [];
var bars = _C(exchange.GetRecords); //Get K line bar data
if (bars.length < len * 2) { //Control the length of the K line bar data array
return;
}
for (var i = len; i > 0; i--) {
var barSub_1 = bars[bars.length - (i + 1)].Close - bars[bars.length - (i + 2)].Close; //Calculate the difference between the current closing price and the previous K line bar closing price
if (barSub_1 > 0) { //If the price rises, add a positive number to the array
barVol.push(bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
} else if (barSub_1 < 0) { //If the price drops, add a negative number to the array
barVol.push(-bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
}
}
if (barVol.length > len) {
barVol.shift(); //Free up excess data
}
self.barIn = 0;
self.barOut = 0;
for (var v = 0; v < barVol.length; v++) {
if (barVol[v] > 0) {
self.barIn += barVol[v]; //Consolidate all active inflows funds
} else {
self.barOut -= barVol[v]; //Consolidate all active outflow funds
}
}
self.barRatio = self.barIn / Math.abs(self.barOut); //Calculate the ratio of active inflows to active outflows
bars.pop(); //Delete unfinished K line bar data
self.close = bars[bars.length - 1].Close; //Get the closing price of the pervious bar
self.hh = TA.Highest(bars, hgLen, 'High'); //Get the previous high price
self.ll = TA.Lowest(bars, hgLen, 'Low'); //Get the previous low price
return self;
}
K লাইন বার তথ্য সরাসরি মাধ্যমে পেতেGetRecords
FMZ এপিআই-তে পদ্ধতি। সর্বোচ্চ মূল্য, সর্বনিম্ন মূল্য, খোলার মূল্য, বন্ধের মূল্য, ভলিউম এবং স্ট্যান্ডার্ড টাইমস্ট্যাম্প ধারণ করে। যদি সর্বশেষ লেনদেনের মূল্য সর্বশেষ লেনদেনের মূল্যের চেয়ে বেশি হয় তবে সর্বশেষ লেনদেনের পরিমাণ * (সর্বোচ্চ মূল্য-নিম্নতম মূল্য) সক্রিয় ক্রয় অন্তর্ভুক্ত করা হয়; যদি সর্বশেষ লেনদেনের মূল্য সর্বশেষ লেনদেনের মূল্যের চেয়ে কম হয় তবে সর্বশেষ ভলিউম * (সর্বোচ্চ মূল্য-নিম্নতম মূল্য) সক্রিয় বিক্রয়ের অন্তর্ভুক্ত করা হয়;
function positions(name) {
var self = {};
var mp = _C(exchange.GetPosition); //Get positions
if (mp.length == 0) {
self.amount = 0;
}
for (var i = 0; i < mp.length; i++) { //Position data processing
if (mp[i].ContractType == name) {
if (mp[i].Type == PD_LONG || mp[i].Type == PD_LONG_YD) {
self.amount = mp[i].Amount;
} else if (mp[i].Type == PD_SHORT || mp[i].Type == PD_SHORT_YD) {
self.amount = -mp[i].Amount;
}
self.profit = mp[i].Profit;
} else {
self.amount = 0;
}
}
return self;
}
মৌলিক অবস্থান তথ্য পেতেGetPosition
FMZ প্ল্যাটফর্ম এপিআইতে পদ্ধতি, এবং আরও বেসিক ডেটা প্রক্রিয়া। যদি বর্তমান দীর্ঘ অবস্থান রাখা হয়, তাহলে ইতিবাচক অবস্থান পরিমাণ ফেরত দেওয়া হয়; যদি বর্তমান অবস্থান সংক্ষিপ্ত হয়, তাহলে নেতিবাচক অবস্থান পরিমাণ ফেরত দেওয়া হয়। এর উদ্দেশ্য হল খোলার এবং অবস্থান বন্ধ করার যৌক্তিকতার গণনা সহজতর করা।
function trade() {
var myData = data(); //Execute data function
if (!myData) {
return;
}
var mp = positions(contractType); //Get position information
var myAmount = mp.amount; //Get the number of positions
var myProfit = mp.profit; //Get floating profit and loss
if (myAmount > 0 && myData.close < myData.ll) {
p.Cover(contractType, unit); //close long position
}
if (myAmount < 0 && myData.close > myData.hh) {
p.Cover(contractType, unit); //close short position
}
if (myAmount == 0) {
if (myData.barRatio > openValve) {
p.OpenLong(contractType, unit); //open long position
} else if (myData.barRatio < 1 / openValve) {
p.OpenShort(contractType, unit); //open short position
}
}
}
কয়েকটি মূল পরামিতিঃ মডেলটির একটি পরিষ্কার নকশা ধারণা রয়েছে, কেবলমাত্র তিনটি মূল পরামিতি রয়েছে। অপ্টিমাইজেশান স্থানটি ছোট, এবং ওভারফিটিং কার্যকরভাবে এড়ানো যায়। শক্তিশালী সার্বজনীনতাঃ কৌশলটি যৌক্তিকভাবে সহজ এবং উচ্চ সার্বজনীনতা রয়েছে। এটি কৃষিজাত পণ্য ব্যতীত বেশিরভাগ জাতের সাথে মানিয়ে নিতে পারে এবং একাধিক জাতের সাথে একত্রিত হতে পারে।
হোল্ডিং পজিশনের শর্ত যোগ করাঃ একমুখী (স্টক) বাজারের তহবিলের প্রবাহ মূল্যের ওঠানামা এবং ট্রেডিং ভলিউমের মতো কারণগুলির উপর ভিত্তি করে তহবিলের প্রবাহ বা প্রবাহকে সংজ্ঞায়িত করতে পারে। তবে, কৌশলটি হোল্ডিং পজিশনের শর্ত অন্তর্ভুক্ত করে না, পরিসংখ্যানগত সক্রিয় মূলধন প্রবাহ বিকৃত হতে পারে।
স্ট্যান্ডার্ড বিচ্যুতি শর্ত যোগ করাঃ শুধুমাত্র একটি অবস্থান খোলার শর্ত হিসাবে তহবিল প্রবাহের উপর নির্ভর করে, ঘন ঘন মিথ্যা সংকেত থাকতে পারে, যার ফলে ঘন ঘন অবস্থান খোলা এবং বন্ধ হয়। নির্দিষ্ট সময়ের মধ্যে তহবিলের নেট আউটফ্লোর গড় মান গণনা করে এবং স্ট্যান্ডার্ড বিচ্যুতি আপ এবং ডাউন যোগ করে মিথ্যা সংকেতগুলি ফিল্টার করুন।
/*backtest
start: 2016-01-01 09:00:00
end: 2019-12-31 15:00:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/
var p = $.NewPositionManager(); //Call commodity futures trading library
//Holding Position data processing
function positions(name) {
var self = {};
var mp = _C(exchange.GetPosition); //Get positions
if (mp.length == 0) {
self.amount = 0;
}
for (var i = 0; i < mp.length; i++) { //Holding Position data processing
if (mp[i].ContractType == name) {
if (mp[i].Type == PD_LONG || mp[i].Type == PD_LONG_YD) {
self.amount = mp[i].Amount;
} else if (mp[i].Type == PD_SHORT || mp[i].Type == PD_SHORT_YD) {
self.amount = -mp[i].Amount;
}
self.profit = mp[i].Profit;
} else {
self.amount = 0;
}
}
return self;
}
//Market data processing function
function data() {
var self = {};
var barVol = [];
var bars = _C(exchange.GetRecords); //Get K line bar data
if (bars.length < len * 2) { //Control the length of the K line bar data array
return;
}
for (var i = len; i > 0; i--) {
var barSub_1 = bars[bars.length - (i + 1)].Close - bars[bars.length - (i + 2)].Close; //Calculate the difference between the current closing price and the previous K line bar closing price
if (barSub_1 > 0) { //If the price rises, add a positive number to the array
barVol.push(bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
} else if (barSub_1 < 0) { //If the price drops, add a negative number to the array
barVol.push(-bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
}
}
if (barVol.length > len) {
barVol.shift(); //Free up excess data
}
self.barIn = 0;
self.barOut = 0;
for (var v = 0; v < barVol.length; v++) {
if (barVol[v] > 0) {
self.barIn += barVol[v]; //Consolidate all active inflows funds
} else {
self.barOut -= barVol[v]; //Consolidate all active outflow funds
}
}
self.barRatio = self.barIn / Math.abs(self.barOut); //Calculate the ratio of active inflows to active outflows
bars.pop(); //Delete unfinished K line bar data
self.close = bars[bars.length - 1].Close; //Get the closing price of the last K line bar
self.hh = TA.Highest(bars, hgLen, 'High'); //Get the previous high price
self.ll = TA.Lowest(bars, hgLen, 'Low'); //Get the previous low price
return self;
}
//Trading function
function trade() {
var myData = data(); //Execute data function
if (!myData) {
return;
}
var mp = positions(contractType); //Get position information
var myAmount = mp.amount; //Get the number of positions
var myProfit = mp.profit; //Get floating profit and loss
if (myAmount > 0 && myData.close < myData.ll) {
p.Cover(contractType, unit); //close long position
}
if (myAmount < 0 && myData.close > myData.hh) {
p.Cover(contractType, unit); //close short position
}
if (myAmount == 0) {
if (myData.barRatio > openValve) {
p.OpenLong(contractType, unit); //open long position
} else if (myData.barRatio < 1 / openValve) {
p.OpenShort(contractType, unit); //open short position
}
}
}
//The main entrance of the program, start from here
function main() {
while (true) { //Enter the loop
if (exchange.IO("status")) { //If it is the market opening time
_C(exchange.SetContractType, contractType); //Subscription contract
trade(); //Execute trade function
}
}
}
কৌশল ঠিকানাঃhttps://www.fmz.com/strategy/87698
কৌশল কনফিগারেশনঃ
ব্যাকটেস্ট পারফরম্যান্সঃ
মডেলিংয়ের মাধ্যমে, এই নিবন্ধটি তথ্য সংগ্রহ, সংশ্লিষ্ট বিশ্লেষণ এবং পূর্বাভাস প্রযুক্তির মাধ্যমে একটি নেট মূলধন প্রবাহ মডেল প্রতিষ্ঠার জন্য FMZ ট্রেডিং প্ল্যাটফর্ম দ্বারা সরবরাহিত কমোডিটি ফিউচার কে লাইন বার ডেটা ব্যবহার করে। ভবিষ্যতের কমোডিটি ফিউচার দামের পূর্বাভাস দিতে এবং কমোডিটি ফিউচারগুলির জন্য পরিমাণগত ট্রেডিং কৌশল ডিজাইন করতে সময় সিরিজ বিশ্লেষণ ব্যবহার করুন।
এটি লক্ষ করা উচিত যে এই নিবন্ধে উল্লেখিত তহবিলের প্রবাহ তহবিলের সক্রিয় প্রবাহকে বোঝায়। এটি বাজারে বিক্রেতা এবং ক্রেতাদের শক্তিকে বোঝায়, তহবিলের প্রবেশ বা প্রস্থান নয়। বাজারে ক্রেতা এবং বিক্রেতাদের আচরণ বিশ্লেষণ করে ভবিষ্যতের দাম বিচার করার কোনও স্বল্পমেয়াদী রেফারেন্স গুরুত্ব নেই।