শেষ নিবন্ধে, আমরা প্রোগ্রাম্যাটিক ট্রেডিং স্ক্রিপ্ট সম্পর্কে কথা বলেছি। প্রকৃতপক্ষে, ট্রেডিং স্ক্রিপ্ট প্রোগ্রামটি মূলত ট্রেডিং স্ক্রিপ্ট প্রোগ্রামের জন্য একটি হার্ডওয়্যার ক্যারিয়ারের প্রয়োজনীয়তা সম্পর্কে কথা বলে (যেখানে প্রোগ্রামটি চলে) এই স্ক্রিপ্টটি সেই কম্পিউটার প্রোগ্রামিং ভাষায় লেখা যেতে পারে উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম) তিনটি প্রোগ্রামিং ভাষা আছে অবশ্যই, আপনি প্রোগ্রামেটিক ট্রেডিং করার সময় কৌশল বাস্তবায়নের জন্য যেকোনো প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন)। এই নিবন্ধে, আমরা কারেন্সি সার্কেল কোয়ান্টিফিকেশন নিয়ে আলোচনা চালিয়ে যাচ্ছি এবং কারেন্সি সার্কেল কোয়ান্টিফিকেশনের জ্ঞান বুঝতে পারছি।
ট্রেডিং কৌশলের ধরন নতুন যারা প্রোগ্রাম্যাটিক ট্রেডিং এবং পরিমাণগত ট্রেডিংয়ে নতুন তারা ট্রেন্ড কৌশল, সালিসি কৌশল, উচ্চ-ফ্রিকোয়েন্সি কৌশল, গ্রিড কৌশল ইত্যাদির মতো পদের দ্বারা বিভ্রান্ত হতে পারে। আসলে, প্রোগ্রাম্যাটিক ট্রেডিং এবং পরিমাণগত ট্রেডিংয়ের সাধারণ কৌশলের ধরনগুলি হল বেশ কয়েকটি দিকনির্দেশ। .
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে কৌশল ডিজাইনের দৃষ্টিকোণ থেকে উপরেরটি বিভক্ত করা হয়েছে:
একক বিভিন্ন কৌশল অর্থাৎ, এই কৌশলটি শুধুমাত্র একটি পণ্য পরিচালনা করে, যেমন BTC ট্রেডিং বা ETH ট্রেডিং।
বহু বৈচিত্র্যের কৌশল সহজভাবে বলতে গেলে, এর অর্থ হল একটি কৌশলগত যুক্তি অনুসারে একাধিক বৈচিত্র্য পরিচালনা করা।
একাধিক অ্যাকাউন্ট কৌশল সহজভাবে বলতে গেলে, এর অর্থ হল একটি বাস্তব বাজারে একাধিক এক্সচেঞ্জ অবজেক্ট কনফিগার করা (এক্সচেঞ্জের ধারণাটি পূর্ববর্তী নিবন্ধে চালু করা হয়েছে, এবং কনফিগার করা API KEY সহ এক্সচেঞ্জ অবজেক্ট একটি বিনিময় অ্যাকাউন্টের প্রতিনিধিত্ব করে)। উদাহরণ স্বরূপ, কিছু কপি করার কৌশলে, একাধিক অ্যাকাউন্ট একসাথে কাজ করে (একই এক্সচেঞ্জ বা ভিন্ন এক্সচেঞ্জ হতে পারে) এক বাস্তব মার্কেটে একাধিক বিনিময় বস্তু (অ্যাকাউন্ট) পরিচালিত হয়।
একাধিক যুক্তি কৌশল উদাহরণস্বরূপ, একটি বাস্তব বাজারে, MACD কৌশল, চলমান গড় কৌশল, গ্রিড কৌশল, ইত্যাদি একই সময়ে ডিজাইন করা হয় (অবশ্যই, বিভিন্ন বিনিময় বস্তু পরিচালিত হয়, এবং একই বিনিময় বস্তু পরিচালনা করা নির্ভর করে নির্দিষ্ট কৌশলগুলি যৌক্তিক কিনা তার উপর বিরোধপূর্ণ)
এক্সচেঞ্জ API ইন্টারফেস কিভাবে একটি প্রোগ্রাম করা ট্রেডিং স্ক্রিপ্ট একটি বিনিময় অ্যাকাউন্ট পরিচালনা করে? উত্তরটি এক্সচেঞ্জ দ্বারা খোলা API ইন্টারফেসের মাধ্যমে। তাহলে কি ধরনের ইন্টারফেস এক্সচেঞ্জের জন্য উন্মুক্ত? গত নিবন্ধে, আমরা “এক্সচেঞ্জ” বিভাগে উল্লেখ করেছি যে এক্সচেঞ্জে সাধারণত REST এবং Websocket ইন্টারফেস থাকে। এখানে আমরা কৌশলগত প্রোগ্রাম স্তর থেকে কিছু ধারণা যোগ করি। এক্সচেঞ্জ ইন্টারফেসটি যাচাই করা হয়েছে কিনা তা অনুসারে যাচাইকরণ এবং অ-যাচাইতে বিভক্ত (REST এবং Websocket উভয়ই)।
ইন্টারফেস যে প্রমাণীকরণ প্রয়োজন হয় না
সাধারণত “পাবলিক ইন্টারফেস” বলা হয়, এই ধরনের ইন্টারফেসের জন্য যাচাইকরণের প্রয়োজন হয় নাAPI KEY
(যদি আপনি API KEY কি তা ভুলে যান, আপনি আগের নিবন্ধটি পড়তে পারেন)। এই ধরনের ইন্টারফেস সাধারণত একটি বাজার ইন্টারফেস, যেমন গভীরভাবে বাজারের অবস্থা অনুসন্ধান করা, কে-লাইন ডেটা অনুসন্ধান করা, তহবিলের হার অনুসন্ধান করা, ট্রেডিং বৈচিত্র্য সম্পর্কে তথ্য অনুসন্ধান করা, এক্সচেঞ্জ সার্ভার টাইমস্ট্যাম্পগুলি জিজ্ঞাসা করা ইত্যাদি।
সহজভাবে বলতে গেলে, একটি ইন্টারফেস যা মূলত আপনার অ্যাকাউন্টের সাথে কিছুই করার নেই সেটিকে মোটামুটিভাবে একটি পাবলিক ইন্টারফেস হিসাবে নির্ধারণ করা যেতে পারে (কোনও যাচাইকরণের প্রয়োজন নেই)
ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্মে, অ-যাচাইকৃত API ফাংশনগুলিকে কল করার সময় (এক্সচেঞ্জের অ-যাচাইকৃত ইন্টারফেস, পাবলিক ইন্টারফেসকে এনক্যাপসুলেট করে), এমনকি API KEY ভুলভাবে কনফিগার করা হলেও, ইন্টারফেস দ্বারা প্রত্যাবর্তিত ডেটা স্বাভাবিকভাবে প্রাপ্ত করা যেতে পারে। (কারণ এটি যাচাই করা হয়নি)
যে ইন্টারফেসগুলি যাচাই করা দরকার সহজভাবে বলতে গেলে, এটি একটি ইন্টারফেস যা যাচাই করা প্রয়োজন (এপিআই KEY এর মাধ্যমে যাচাই করা হয়)। এই ধরনের ইন্টারফেস সাধারণত আপনার অ্যাকাউন্টের কিছু ক্রিয়াকলাপ বা তথ্যের সাথে সম্পর্কিত হয়, যেমন অ্যাকাউন্টের সম্পদ অনুসন্ধান করা, অ্যাকাউন্টের অবস্থান অনুসন্ধান করা, মুলতুবি অর্ডারগুলি জিজ্ঞাসা করা, স্থানান্তর করা, কয়েন স্থানান্তর করা, লিভারেজ সামঞ্জস্য করা, অবস্থান মোড সেট করা ইত্যাদি। এই অপারেশন যাচাই করা আবশ্যক. ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্মে, যখন API ফাংশনগুলিকে কল করা হয় যার জন্য যাচাইকরণের প্রয়োজন হয় (এনক্যাপসুলেটেড এক্সচেঞ্জ ইন্টারফেস যা যাচাইকরণের প্রয়োজন হয়, ব্যক্তিগত ইন্টারফেস), যদি API KEY ভুলভাবে কনফিগার করা হয়, একটি ত্রুটি রিপোর্ট করা হবে এবং ইন্টারফেসে কল করার সময় একটি শূন্য মান ফেরত দেওয়া হবে .
তাহলে কীভাবে এই ইন্টারফেসগুলি উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে ব্যবহার করা হয়?
ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম এক্সচেঞ্জ আচরণকে অন্তর্ভুক্ত করে এবং সামঞ্জস্যপূর্ণ ইন্টারফেসগুলিকে সংজ্ঞায়িত করে (যেমন কে-লাইন ইন্টারফেস, ইন-ডেপ্থ মার্কেট ইন্টারফেস, কোয়েরি কারেন্ট অ্যাসেট ইন্টারফেস, অর্ডার প্লেসিং ইন্টারফেস, অর্ডার ক্যান্সেলেশন ইন্টারফেস, ইত্যাদি) কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম এপিআই ডকুমেন্টেশন (https://www.fmz.com/api) জিজ্ঞাসা করে উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের API ফাংশন দেখা যেতে পারে।
তাহলে কীভাবে উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে অসঙ্গতিপূর্ণ আচরণ এবং সংজ্ঞা সহ কিছু বিনিময় ইন্টারফেস ব্যবহার করবেন?
এই বিনিময় ইন্টারফেসগুলির মধ্যে রয়েছে: সম্পদ স্থানান্তর, শর্তসাপেক্ষ প্রতিনিধি, ব্যাচ অর্ডার প্লেসমেন্ট, ব্যাচ বাতিলকরণ, অর্ডার পরিবর্তন ইত্যাদি। কিছু এক্সচেঞ্জ এই ইন্টারফেস আছে, কিছু এক্সচেঞ্জ নেই, এবং ফাংশন এবং ব্যবহারের বিবরণ বেশ ভিন্ন হতে পারে তাই, এই ইন্টারফেসগুলি উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে পাস করা হয়।exchange.IO
এই ফাংশনটি অ্যাক্সেস করতে ব্যবহার করা হয় (বিশদ বিবরণের জন্য, অনুগ্রহ করে উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মের API ডকুমেন্টেশন দেখুন: https://www.fmz.com/api#exchange.io…)। এছাড়াও উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম কৌশল স্কয়ারে কিছু ব্যবহারিক IO উদাহরণ কৌশল রয়েছে।
ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম API ডকুমেন্টেশনের সমস্ত API ফাংশন কি নেটওয়ার্ক অনুরোধ তৈরি করে?
আসুন প্রথমে এক্সচেঞ্জ এপিআই ইন্টারফেস সম্পর্কে কথা বলি (উদাহরণস্বরূপ, প্রতি সেকেন্ডে 5 বার অ্যাক্সেস করা যায় না), অন্যথায় একটি HTTP 429 ত্রুটি রিপোর্ট করা হবে এবং অ্যাক্সেস অস্বীকার করা হবে (বেশিরভাগ এক্সচেঞ্জ 429 রিপোর্ট করবে)। . তারপর, ইনভেন্টর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্মে এনক্যাপসুলেটেড এক্সচেঞ্জ ইন্টারফেস কল করার ক্ষেত্রেও এই সীমাবদ্ধতা নেই API ফাংশনগুলির জন্য যা উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে নেটওয়ার্ক অনুরোধ তৈরি করে না। উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের সমস্ত API ফাংশন নেটওয়ার্ক অনুরোধ তৈরি করবে না উদ্ভাবকের কিছু API ফাংশন শুধুমাত্র কিছু স্থানীয় সেটিংস পরিবর্তন করে, যেমন বর্তমান ট্রেডিং পেয়ার সেট করা, চুক্তি কোড সেট করা, সূচক গণনা ফাংশন, এক্সচেঞ্জের নাম প্রাপ্ত করা। বস্তু, ইত্যাদি মুলত, আপনি বিচার করতে পারেন যে কোন নেটওয়ার্ক রিকোয়েস্টটি এক্সচেঞ্জ ডেটা, অপারেটিং এক্সচেঞ্জ অ্যাকাউন্ট ইত্যাদি প্রাপ্ত করা হয়, এই ইন্টারফেসগুলিকে কল ফ্রিকোয়েন্সির দিকে মনোযোগ দিতে হবে।
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে API ফাংশন ব্যবহার করার সময় কিছু সাধারণ সমস্যা এবং অভিজ্ঞতা সম্পর্কে কথা বলি।
কৌশলগুলি লেখার সময়, আমাদের ইন্টারফেস দ্বারা প্রত্যাবর্তিত ডেটা বিচার এবং যাচাই করতে হবে, উদাহরণস্বরূপ, উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে বাজার মূল্য প্রাপ্ত করার জন্য কোডের এই লাইনটি সরাসরি এক্সচেঞ্জ ইন্টারফেস অ্যাক্সেস করার জন্য আপনার নিজস্ব প্রোগ্রাম লেখার ক্ষেত্রেও সত্য। ):var ticker = exchange.GetTicker()
, যদি আমাদের এটি ব্যবহার করার প্রয়োজন হয়ticker
পরিবর্তনশীল (GetTicker ফাংশন দ্বারা প্রত্যাবর্তিত কাঠামো দেখুন)Last
(সর্বশেষ মূল্য) এই ডেটা আমাদের ব্যবহার করতে হবেvar newPrice = ticker.Last
এইভাবে ডেটা পান (নতুন মূল্য কী? নতুন: সর্বশেষ, মূল্য: মূল্য, হ্যাঁ! একসাথে!) এই সময়ে, যদিGetTicker()
যদি ফাংশনটি স্বাভাবিক ডেটা ফেরত দেয় তবে এটি ঠিক আছে, কিন্তু যদি একটি অনুরোধের সময়সীমা ঘটে, একটি নেটওয়ার্ক ত্রুটি ঘটে, এক্সচেঞ্জ নেটওয়ার্ক কেবলটি আনপ্লাগ করে, তারটি খনন করা হয়, দুষ্টু শিশু সুইচটি টেনে নেয়, ইত্যাদি… এটি ঘটবেGetTicker()
ফাংশন রিটার্নnull
. এই সময়েticker
মান হলnull
, আমি আবার এটি পরিদর্শন করা হবেLast
একটি প্রোগ্রাম ব্যতিক্রম ঘটবে, যার ফলে নীতি প্রোগ্রাম বন্ধ হয়ে যাবে।
এই দৃষ্টিকোণ থেকে, ইন্টারফেস কল ব্যর্থতা (GetTicker কল ব্যর্থতা নাল রিটার্ন) নীতি বাস্তব ডিস্ক বন্ধের সরাসরি কারণ নয় (সরাসরি কারণ হল একটি অ্যাক্সেসnull
পরিবর্তনশীল গুণাবলী), ইন্টারফেস কল ব্যর্থ হলে ত্রুটি রিপোর্টিং প্রকৃত লেনদেন বন্ধ করার কারণ হবে না (জোর যোগ করা হয়েছে)।
তাহলে আসল অফারের অস্বাভাবিক স্টপ এড়াতে আমরা কী করতে পারি?
উত্তরটি হল ইন্টারফেস দ্বারা ফিরে আসা ডেটাতে ত্রুটি-সহনশীল প্রক্রিয়াকরণ করাnull
(উদাহরণ হিসাবে জাভাস্ক্রিপ্ট ভাষা, অন্যান্য ভাষা মূলত একই)
ব্যাখ্যা করার জন্য একটি ছোট কোড স্নিপেট লিখুন (এটি শুধুমাত্র একটি বিবরণ, আপনি এটি সরাসরি চালালে এটি কাজ করবে না!)
var ticker = exchange.GetTicker()
if (ticker) {
var newPrice = ticker.Last
Log("打印最新价格:", newPrice)
} else {
// 数据为null,不做操作就不会出问题
}
শুধু নয়GetTicker
ইন্টারফেসটি ত্রুটি-সহনশীল হতে হবে এবং নেটওয়ার্ক অনুরোধ সহ ইন্টারফেসটি রিটার্ন মানের জন্য ত্রুটি-সহনশীল হতে হবে (যদি আপনি ফাংশনের রিটার্ন মান ব্যবহার করেন)
অনেক ফল্ট টলারেন্স পদ্ধতি ব্যবহার করা যেতে পারে_C()
ফাংশন (এফএমজেড এপিআই ডকুমেন্টেশন দেখুন), আপনার নিজের দোষ-সহনশীল ফাংশন লিখুন এবং আপনার নিজের দোষ-সহনশীল প্রক্রিয়া এবং যুক্তি ডিজাইন করুন।
সম্পর্কে_C()
ফাংশন ব্যবহার করার সময়, অনেক নতুন ছাত্র তাদের ভুলভাবে ব্যবহার করতে পারে।_C()
একটি ফাংশনের পরামিতি হল ফাংশন রেফারেন্স, ফাংশন কল নয়। সাধারণ মানুষের ভাষায়:
_C(funcName, param1, param2)
, কলটি সঠিক, funcName এর বন্ধনী নেই, param1 এবং param2 হল funcName ফাংশনে পাস করার পরামিতি।
_C(funcName(param1, param2))
, কলিং এরর, সাধারণত নতুনরা এইরকম লিখবে যদি তারা FMZ API ডকুমেন্টেশন সাবধানে না পড়ে।
LTC_USDT
function main() {
exchange.IO("simulate", true) // 切换为OKEX交易所的模拟盘
exchange.Buy(-1, 1) // 价格是-1,表示下的订单为市价单,数量为1表示下单量是1USDT
}
যেহেতু এক্সচেঞ্জে সাধারণত অর্ডারের পরিমাণের সীমা থাকে, তাই সীমার চেয়ে ছোট অর্ডার দেওয়া হবে না (উদাহরণস্বরূপ, Binance Spot-এ প্রতিটি অর্ডার সফলভাবে স্থাপন করার আগে 5 USDT-এর বেশি হতে হবে)। অতএব, এইরকম একটি অর্ডার দেওয়ার সময় একটি ত্রুটি রিপোর্ট করা হবে:
错误 Buy(-1, 1): map[code:1 data:[map[clOrdId: ordId: sCode:51020 sMsg:Order amount should be greater than the min available amount. tag:]] msg:]
যেহেতু অর্ডার ফাংশন শুধুমাত্র আছেBuy
,Sell
. যাইহোক, ফিউচার (অবশ্যই স্পট নিয়ে কোন সমস্যা নেই, স্পট শুধুমাত্র কেনা এবং বিক্রি করা যেতে পারে) দীর্ঘ, দীর্ঘ, সংক্ষিপ্ত, এবং স্পষ্টতই ক্রয়/বিক্রয় এই সময়ে অনেক দিক দিয়ে কাজ করতে পারে না। এই ফাংশনটি ফিউচার ট্রেডিং ডিরেকশনের সেটিং চালু করা প্রয়োজনexchange.SetDirection()
。
এফএমজেডে
exchange.SetDirection("buy")
(প্রথমে দিকনির্দেশ সেট করুন) এবংexchange.Buy
একসাথে ব্যবহার করা হয়, এর অর্থ হল যে অর্ডার দেওয়া হয়েছে সেটি একটি দীর্ঘ অবস্থানের অর্ডার।
এবং তাই:
exchange.SetDirection("sell")
এবংexchange.Sell
একসাথে ব্যবহার করা হয়, এর অর্থ হল যে অর্ডার দেওয়া হয়েছে সেটি হল একটি ছোট অবস্থান খোলার অর্ডার।
exchange.SetDirection("closebuy")
এবংexchange.Sell
একসাথে ব্যবহার করা হয়, এর অর্থ হল যে অর্ডার দেওয়া হয়েছে একটি দীর্ঘ অবস্থান বন্ধ করার আদেশ।
exchange.SetDirection("closesell")
এবংexchange.Buy
একসাথে ব্যবহার করা হয়, এর মানে হল যে অর্ডার দেওয়া হল একটি সংক্ষিপ্ত অবস্থান বন্ধ করার আদেশ।
সাধারণত newbies হবেexchange.SetDirection("sell")
এবংexchange.Buy
একসাথে ব্যবহৃত, বা অন্যান্য ভুল সমন্বয়. তারপরে একটি ত্রুটি রিপোর্ট করা হয়েছিল (ব্যাকটেস্ট একটি ত্রুটি রিপোর্ট করতে পারে না, তবে এটি স্পষ্টতই একটি যৌক্তিক ত্রুটি, এবং অবসেসিভ-বাধ্যতামূলক ব্যাধি সহ্য করা যায় না…)।
নতুনরা আরেকটি সাধারণ ভুল করে
function main() {
exchange.SetContractType("quarter") // 设置当前合约为季度合约
exchange.SetDirection("sell")
var id = exchange.Sell(-1, 1)
Log("看我市价单下单了,成交了,就有持仓了", exchange.GetPosition())
exchange.SetDirection("closebuy") // closebuy 和Sell 搭配使用,嗯没错~
exchange.Sell(-1, 1)
}
এটি দেখে, আপনি জিজ্ঞাসা করতে পারেন: “কেন আমার একটি পজিশন আছে এবং আমি ক্লোজবাই অ্যান্ড সেল একসাথে ব্যবহার করি, কিন্তু এটি একটি ত্রুটি দেয় এবং আমি পজিশনটি বন্ধ করতে পারি না?” আমি উত্তর দেব: “আমি ভুল দিক বন্ধ করে দিয়েছি! আমি লং পজিশন বন্ধ করে দিয়েছি।”
আরেকটি পরিস্থিতি যেখানে উপরের ত্রুটি ঘটতে পারে তা হল: বন্ধের দিকটি সঠিকভাবে সেট করা হয়েছে, অর্ডার ফাংশনটি সঠিকভাবে ব্যবহার করা হয়েছে, এবং এই দিকটিতে একটি অবস্থানও রাখা হয়েছে, কিন্তু এই ত্রুটিটি এখনও রিপোর্ট করা হয়েছে।
কারণ হল আপনার প্রোগ্রামটি একাধিক অর্ডার দিয়েছে, কিন্তু ক্লোজিং অর্ডারটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করছে সমাপ্তি অবস্থান অনুরোধ করা হবে.
print
。
জাভাস্ক্রিপ্টের জন্যconsole.log
。
গোলং এর জন্যfmt.Println()
。
C++ এর জন্যcout
আসুন FMZ প্ল্যাটফর্মে তথ্য প্রদর্শন সম্পর্কে কথা বলি, ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্মে দুটি প্রধান স্থান রয়েছে যেখানে তথ্য প্রদর্শিত হয়।
- স্ট্যাটাস বার
আসল অফার চলার পরে, আসল অফার পৃষ্ঠাটি চিত্রে দেখানো হয়েছে

ডিসপ্লে অংশটি হল স্ট্যাটাস বার তথ্য যা কিছু রিয়েল-টাইম পরিবর্তন ডেটা প্রদর্শন করতে ব্যবহৃত হয় (কারণ রিয়েল-টাইম পরিবর্তনগুলি বাস্তব সময়ে পর্যবেক্ষণ করা প্রয়োজন এবং প্রতিবার লগ হিসাবে প্রিন্ট করা যায় না, তাই এই ধরনের ডেটা স্ট্যাটাস বারে প্রদর্শিত হতে পারে যদি প্রতিটি আইটেম প্রিন্ট করা হয় লগটি অনেক অর্থহীন ডেটা পুনরাবৃত্তি করবে, যা ক্যোয়ারীকে প্রভাবিত করবে)।
স্ট্যাটাস বারে ডেটা ব্যবহার দেখান`LogStatus`ফাংশন, বিস্তারিত জানার জন্য FMZ এর API ডকুমেন্টেশন দেখুন।
- লগ বার
এছাড়াও বাস্তব অফার পৃষ্ঠায়, চিত্রে দেখানো হয়েছে:

ডিসপ্লে অংশটি হল লগ বারটি মূলত একটি নির্দিষ্ট সময়ে নির্দিষ্ট ডেটা স্থায়ীভাবে রেকর্ড করতে বা একটি নির্দিষ্ট সময়ে নীতির একটি নির্দিষ্ট অপারেশন রেকর্ড করতে ব্যবহৃত হয়।
লগগুলি বিভিন্ন প্রকারে বিভক্ত:
1. সাধারণ লগ, FMZ-এর কৌশল কৌশল লগে আউটপুট এবং প্রিন্ট করতে লগ ফাংশন ব্যবহার করে।

2. অর্ডার লগ, FMZ এর কৌশলে ব্যবহৃত হয়`exchange.Sell`/`exchange.Buy`এটি স্বয়ংক্রিয়ভাবে লগ আউটপুটে রেকর্ড করা হবে।

3. অর্ডার বাতিলকরণ লগ, FMZ এর কৌশলে ব্যবহৃত হয়`exchange.CancelOrder`, অর্ডার বাতিলকরণ লগ স্বয়ংক্রিয়ভাবে লগ আউটপুট হবে.

4. ত্রুটি লগ যখন এফএমজেডের কৌশলটি চলছে, যখন নেটওয়ার্ক অনুরোধ করার জন্য ইন্টারফেসে একটি কল ত্রুটি ঘটে বা একটি ব্যতিক্রম নিক্ষেপ করা হয় (যেমন একটি বিবৃতি যেমন থ্রো), তখন ত্রুটি লগটি স্বয়ংক্রিয়ভাবে লগে আউটপুট হবে৷

FMZ এর API ফাংশন, ফাংশন যা লগ আউটপুট তৈরি করতে পারে যেমন Log(…), exchange.Buy(মূল্য, পরিমাণ), exchange.CancelOrder(Id), ইত্যাদি, কিছু অতিরিক্ত আউটপুট প্যারামিটার সহ প্রয়োজনীয় প্যারামিটার অনুসরণ করতে পারে, যেমন যেমন: বিনিময় আদেশ (অর্ডার[j].Id, orders[j]) এটি অর্ডার বাতিল করছে[j] এই অর্ডার দেওয়ার সময়, অর্ডারের তথ্যও আউটপুট হয়।
function main() {
Log("数据1", "数据2", "数据3", "...")
var data2 = 200
var id = exchange.Sell(100000, 0.1, "附带数据1", data2, "...")
exchange.CancelOrder(id, "附带数据1", data2, "...")
LogProfit(100, "附带数据1", data2, "...")
}
JavaScript
ভাষা কৌশল গণনা করা সূচক ডেটা মুদ্রণ করলে এটি প্রদর্শিত হবে।null
。স্ট্র্যাটেজি স্কোয়ারে একটি শিক্ষার উদাহরণ হতে পারে: https://www.fmz.com/strategy/125770 ব্যাকটেস্টিং এর শিক্ষার উদাহরণ কৌশলের জন্য, আপনি ব্যাকটেস্টিং সিস্টেম এবং 10-পিরিয়ড মুভিং এভারেজ দ্বারা তৈরি চার্ট দেখতে পারেন:
কৌশল কাস্টম অঙ্কন, আঁকা কে-লাইন এবং চলমান গড় চার্ট:
প্রশ্ন: আমি যদি 10-ঘন্টা মুভিং এভারেজ চাই? উত্তর: কে-লাইন ডেটার জন্য, ঘন্টায় কে-লাইন ডেটা ব্যবহার করা যথেষ্ট।
সাধারণ মানুষের পরিভাষায়, কে-লাইনটি আমরা ডিজিটাইজ করার পরে একটি অ্যারে দেখতে পাচ্ছি (যদি আপনি অ্যারের ধারণাটি বুঝতে না পারেন তবে আপনি এটি Baidu-তে ডাউনলোড করতে পারেন), যার প্রতিটি উপাদান একটি কে-লাইন কলাম, যা ক্রমানুসারে সাজানো অ্যারের প্রথম উপাদানটি বর্তমান সময়ের থেকে সবচেয়ে দূরে এবং অ্যারের শেষ উপাদানটি বর্তমান সময়ের সবচেয়ে কাছের। সাধারণত কে-লাইন ডেটার শেষ বারটি বর্তমান চক্রের বার, যা বাস্তব সময়ে পরিবর্তিত হয় এবং সম্পূর্ণ হয় না (আপনি একটি এক্সচেঞ্জের পৃষ্ঠায় লগ ইন করে এবং এর কে-লাইন পর্যবেক্ষণ করে পরিবর্তনগুলি পর্যবেক্ষণ করতে পারেন)। গণনা করা সূচকগুলিও কে-লাইন বারের সাথে এক-থেকে-একের সাথে মিলে যায়, আপনি দেখতে পারেন যে একটি সূচকের মান একটি কে-লাইন বারের সাথে মিলে যায়। মনে রাখবেন যে শেষ কে-লাইন বারটি রিয়েল টাইমে পরিবর্তিত হয় এবং কে-লাইন বারের পরিবর্তনের সাথে গণনা করা সূচকটিও পরিবর্তিত হবে।
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে, আপনি TA লাইব্রেরি ব্যবহার করতে পারেন (FMZ প্ল্যাটফর্ম দ্বারা বাস্তবায়িত লাইব্রেরি, কাস্টোডিয়ানে একত্রিত, এবং সরাসরি বিভিন্ন ভাষায় ব্যবহার করা যেতে পারে) অথবা তালিব লাইব্রেরি (তালিব পুরানো নির্দেশক লাইব্রেরি, JS, C++ ইন্টিগ্রেশন, পাইথন ইনস্টল করা প্রয়োজন)। উদাহরণস্বরূপ, উপরের উদাহরণে, চলমান গড় গণনা করা হয়: টিএ লাইব্রেরি ব্যবহার করুন:
function main() {
var records = exchange.GetRecords()
var ma = TA.MA(records, 10)
Log(ma) // 打印均线
}
তালিব লাইব্রেরি ব্যবহার করুন:
function main() {
var records = exchange.GetRecords()
var ma = talib.MA(records, 10)
Log(ma) // 打印均线
}
গণনা করা সূচক ডেটা ma হল একটি অ্যারে, এবং প্রতিটি উপাদান কে-লাইন অ্যারে (রেকর্ড) এক থেকে এক, অর্থাৎma[ma.length -1]
অনুরূপrecords[records.length - 1]
, এবং তাই.
অন্যদের ক্ষেত্রেও একই কথা, যতই জটিল, সূচক হোক না কেন, এবং আপনাকে MACD-এর মতো সূচকগুলিতে মনোযোগ দিতে হবে।
var macd = TA.MACD(records) // 这样只传入K线数据,不传入指标参数,指标参数采用的就是默认值,其它指标函数也是同理
এই সময়ে, ভেরিয়েবল macd হল একটি দ্বি-মাত্রিক অ্যারে (আপনি যদি ধারণাটি বুঝতে না পারেন তবে আপনি Baidu ব্যবহার করতে পারেন) একটি দ্বি-মাত্রিক অ্যারে হল একটি অ্যারে এবং এর প্রতিটি উপাদানও একটি অ্যারে৷ প্রশ্ন: কেন macd নির্দেশক ডেটা দ্বি-মাত্রিক অ্যারে? উত্তর: কারণ macd সূচক দুটি লাইন (dif লাইন, dea লাইন) এবং পরিমাপ কলামের একটি সেট (macd পরিমাপ কলাম, আসলে, এই পরিমাপ কলাম ডেটাকে একটি লাইন হিসাবেও বিবেচনা করা যেতে পারে) দ্বারা গঠিত। সুতরাং macd ভেরিয়েবলকে বিভক্ত করা যেতে পারে:
var dif = macd[0]
var dea = macd[1]
var macdColumn = macd[2]
এখানে একটি রেডিমেড শিক্ষণ উদাহরণও রয়েছে, যদি আপনি আগ্রহী হন, তাহলে অনুগ্রহ করে এটি অধ্যয়ন করুন: https://www.fmz.com/strategy/151972