[TOC]

উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে কৌশল বিকাশ করা অবশ্যই কৌশল প্যারামিটার এবং কৌশল মিথস্ক্রিয়া ডিজাইন করা থেকে অবিচ্ছেদ্য হতে হবে। উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম সহজে ব্যবহারযোগ্য, শক্তিশালী পরিমাণগত ট্রেডিং সরঞ্জাম এবং ক্রমাগত পণ্য নকশা এবং ফাংশন পুনরাবৃত্তি করার জন্য প্রতিশ্রুতিবদ্ধ। “কৌশল প্যারামিটার” এবং “ইন্টার্যাকশন কন্ট্রোল” আপগ্রেড করার মাধ্যমে, কৌশল ডিজাইনে প্যারামিটার এবং মিথস্ক্রিয়াগুলির নকশা নমনীয়তা আরও বৃদ্ধি করা হয়। কৌশল পরামিতি এবং ইন্টারেক্টিভ নিয়ন্ত্রণের ফাংশনগুলিকে উন্নত করা হয়েছে যাতে কিছু ডিজাইনের প্রয়োজনীয়তা বাস্তবায়ন করা সহজ হয়। তাই এই প্রবন্ধে, আসুন কৌশল ডিজাইনের দুটি প্রয়োজনীয় বিষয়বস্তু পুনরায় বুঝুন: “কৌশল প্যারামিটার ডিজাইন” এবং “কৌশল ইন্টারঅ্যাকশন ডিজাইন”।
উদ্ভাবকের পরিমাণ নির্ধারণে কৌশলের পরামিতিগুলির ধরন বৃদ্ধি পায়নি এবং এখনও আমরা যে পাঁচটি পরামিতি প্রকারের সাথে পরিচিত:
তাই আপনি অবশ্যই আমাকে জিজ্ঞাসা করবেন, এই প্ল্যাটফর্ম আপডেটে কোন বিষয়বস্তু যুক্ত এবং অপ্টিমাইজ করা হয়েছে?
এই আপগ্রেডটি প্যারামিটার বাইন্ডিং কন্ট্রোলের “কম্পোনেন্ট কনফিগারেশন” যোগ করে, “গ্রুপিং” এবং “প্যারামিটার ডিপেন্ডেন্সি” এর দুটি ফাংশনকে সরল করে এবং এই দুটি ফাংশনকে “কম্পোনেন্ট কনফিগারেশন”-এ একীভূত করে। একটি “ঐচ্ছিক”/“প্রয়োজনীয়” বিকল্পটি প্যারামিটারের ডিফল্ট মানটিতে যোগ করা হয়েছে কিনা তা নির্ধারণ করতে যদি প্যারামিটারটি “প্রয়োজনীয়” হিসাবে সেট করা থাকে তবে কৌশলটি যখন প্যারামিটার নিয়ন্ত্রণে লেখা থাকে নির্বাহিত পরামিতি, কৌশলটি এই সময়ে চালানো যাবে না। এখন যেহেতু আমরা আপগ্রেড পরিবর্তনগুলি সম্পর্কে একটি সাধারণ ধারণা পেয়েছি, আসুন সেগুলি বিস্তারিতভাবে পরীক্ষা করি।

আমরা আগে “ঐচ্ছিক”/“প্রয়োজনীয়” ফাংশন সম্পর্কে সংক্ষিপ্তভাবে কথা বলেছি, তাই আমরা এখানে বিশদে যাব না। নিম্নলিখিতটি প্রধানত “কম্পোনেন্ট কনফিগারেশন” ব্যাখ্যা করে: কম্পোনেন্ট কনফিগারেশনের সেটিং সহজভাবে বোঝা যায়:
প্যারামিটার (বাউন্ড) এর সাথে সম্পর্কিত নিয়ন্ত্রণের বিভিন্ন বৈশিষ্ট্য, প্রকার এবং নিয়ম সেট করুন। ডিফল্টরূপে সাংখ্যিক প্রকারের প্যারামিটার (সংখ্যা) এর সাথে আবদ্ধ নিয়ন্ত্রণ হল ইনপুট বাক্স দ্বারা প্রাপ্ত ডেটার জন্য আপনি নিয়মগুলি সংজ্ঞায়িত করতে পারেন, অর্থাৎ, “সর্বনিম্ন মান” নিয়ন্ত্রণ এবং “সর্বোচ্চ মান” নিয়ন্ত্রণ ব্যবহার করুন৷ এটি সেট করার জন্য চিত্র।
ডিফল্ট ইনপুট বক্স নিয়ন্ত্রণ ছাড়াও, প্ল্যাটফর্ম যোগ করেছে:

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

ডিফল্ট ইনপুট বক্স নিয়ন্ত্রণ ছাড়াও, প্ল্যাটফর্ম যোগ করেছে:
পাঠ্য “কম্পোনেন্ট টাইপ” এ Set to: Text নির্বাচন করুন। বর্তমান প্যারামিটারের সাথে সঙ্গতিপূর্ণ কৌশল ইন্টারফেসের ইনপুট বক্স নিয়ন্ত্রণ একটি বড় পাঠ্য বাক্সে পরিবর্তিত হবে। টেক্সট কন্ট্রোল এবং সাধারন ইনপুট বক্স কন্ট্রোলের মধ্যে পার্থক্য হল: টেক্সট বক্সে প্রবেশ করা টেক্সট মোড়ানো যায়, এবং টেক্সট বক্স কন্ট্রোলের আকার সামঞ্জস্য করতে পারে। ইন্টারফেস প্যারামিটারের পরিবর্তনশীল মান হল: স্ট্রিং।
সময় বাছাইকারী “কম্পোনেন্ট টাইপ” এ Set to: Time পিকার নির্বাচন করুন। বর্তমান প্যারামিটারের সাথে সঙ্গতিপূর্ণ কৌশল ইন্টারফেসের ইনপুট বক্স নিয়ন্ত্রণ সময় এবং তারিখ সেট করার জন্য একটি নিয়ন্ত্রণ হয়ে উঠবে। “স্ট্রিং টাইপ প্যারামিটারের জন্য কম্পোনেন্ট টাইপের সময় নির্বাচক” “সাংখ্যিক টাইপ প্যারামিটারের জন্য কম্পোনেন্ট টাইপের সময় নির্বাচক” থেকে আলাদা। বিন্যাস নির্বাচন করুন:
রঙ চয়নকারী “কম্পোনেন্ট টাইপ” এ Set to: Color Picker নির্বাচন করুন। বর্তমান প্যারামিটারের সাথে সঙ্গতিপূর্ণ কৌশল ইন্টারফেসের ইনপুট বক্স নিয়ন্ত্রণ একটি রঙ নির্বাচন নিয়ন্ত্রণে পরিণত হবে। সাধারণত রং সেট করার জন্য প্যারামিটার ডিজাইন করতে ব্যবহৃত হয়। ইন্টারফেস প্যারামিটারের পরিবর্তনশীল মান হল: স্ট্রিং (নির্বাচিত রঙের সাথে সম্পর্কিত রঙের মান, উদাহরণস্বরূপ: #7e1717)।

ড্রপ-ডাউন বক্স টাইপ প্যারামিটারের সাথে সম্পর্কিত ডিফল্ট নিয়ন্ত্রণ হল একটি ড্রপ-ডাউন বক্স, কিন্তু এইবার পূর্ববর্তী সাধারণ একক-নির্বাচন ড্রপ-ডাউন বক্সে অনেকগুলি আপগ্রেড করা হয়েছে:
ডিফল্ট ড্রপ-ডাউন বক্স নিয়ন্ত্রণ ছাড়াও, এই সময় প্ল্যাটফর্ম যোগ করেছে:

এনক্রিপ্ট করা স্ট্রিং টাইপের প্যারামিটারগুলিও বিশেষ। এটি ডিফল্ট এনক্রিপ্ট করা ইনপুট বক্স নিয়ন্ত্রণ।
প্ল্যাটফর্মে এনক্রিপ্ট করা স্ট্রিং টাইপ নিয়ন্ত্রণগুলি সাধারণত গোপন কী, পাসওয়ার্ড ইত্যাদির মতো কিছু সংবেদনশীল তথ্য সেট করতে ব্যবহৃত হয়। এই ইনপুট প্যারামিটার মানগুলি স্থানীয়ভাবে এনক্রিপ্ট করা হয়।
ইন্টারফেস প্যারামিটারের পরিবর্তনশীল মান হল: স্ট্রিং।
উপরের সমস্ত ধরণের নীতি ইন্টারফেস প্যারামিটারের জন্য, এই আপগ্রেডটি পূর্ববর্তী “প্যারামিটার গ্রুপিং” এবং “প্যারামিটার নির্ভরতা” ফাংশনগুলিকে “কম্পোনেন্ট কনফিগারেশন”-এ একীভূত করে। সমস্ত ইন্টারফেস প্যারামিটারের কম্পোনেন্ট কনফিগারেশনে “গ্রুপ” এবং “ফিল্টার” সেটিংস রয়েছে।
গ্রুপ গ্রুপ ড্রপ-ডাউন বক্স কন্ট্রোলে যে লেবেলগুলিকে গোষ্ঠীভুক্ত করতে হবে আপনি সরাসরি প্রবেশ করতে পারেন এবং গ্রুপ ইনপুট নিশ্চিত করতে এন্টার কী ব্যবহার করতে পারেন। সিস্টেমটি গ্রুপিং বিকল্পগুলিতে বর্তমানে প্রবেশ করা ট্যাগগুলি রেকর্ড করবে। তারপর আপনি বর্তমান ইন্টারফেস পরামিতিগুলির জন্য গ্রুপ নির্দিষ্ট করতে পারেন। গ্রুপিং করার পর, গ্রুপ হিসেবে চিহ্নিত প্যারামিটারগুলি ব্যাকটেস্ট/রিয়েল মার্কেট ইন্টারফেসে স্ট্র্যাটেজির গ্রুপিং এরিয়াতে প্রদর্শিত হবে।
ফিল্টার ফিল্টার কন্ট্রোলে কিছু এক্সপ্রেশন লিখুন, যা বর্তমান প্যারামিটারগুলি সক্রিয় এবং প্রদর্শন করা প্রয়োজন কিনা তা নির্ধারণ করতে ব্যবহার করা যেতে পারে। এই ফাংশনটি একটি নির্দিষ্ট প্যারামিটার সেটিং এর উপর নির্ভর করে বর্তমান পরামিতিগুলিকে প্রদর্শন বা লুকানোর অনুমতি দেয়। ফিল্টার এক্সপ্রেশন উদাহরণ:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
এখানে a এবং b উভয়ই কৌশল ইন্টারফেস প্যারামিটারের ভেরিয়েবলের প্রতিনিধিত্ব করে।
যদি উপরের ব্যাখ্যাটি কিছুটা অজ্ঞাত মনে হয়, তবে এটি বোঝার সর্বোত্তম উপায় হল এই প্যারামিটার ফাংশনগুলিকে বাস্তবে ব্যবহার করা এবং পরীক্ষা করা:
একটি উদাহরণ হিসাবে জাভাস্ক্রিপ্ট ভাষা কৌশল নিন:
function main() {
Log("---------------------------开始测试数字类型参数---------------------------")
Log("变量pNum1:", pNum1, ", 变量值类型:", typeof(pNum1))
Log("变量pNum2:", pNum2, ", 变量值类型:", typeof(pNum2))
Log("变量pNum3:", pNum3, ", 变量值类型:", typeof(pNum3))
Log("变量pNum4:", pNum4, ", 变量值类型:", typeof(pNum4))
Log("---------------------------开始测试布尔类型参数---------------------------")
Log("变量pBool1:", pBool1, ", 变量值类型:", typeof(pBool1))
Log("变量pBool2:", pBool2, ", 变量值类型:", typeof(pBool2))
Log("---------------------------开始测试字符串类型参数---------------------------")
Log("变量pStr1:", pStr1, ", 变量值类型:", typeof(pStr1))
Log("变量pStr2:", pStr2, ", 变量值类型:", typeof(pStr2))
Log("变量pStr3:", pStr3, ", 变量值类型:", typeof(pStr3))
Log("变量pStr4:", pStr4, ", 变量值类型:", typeof(pStr4))
Log("---------------------------开始测试下拉框类型参数---------------------------")
Log("变量pCombox1:", pCombox1, ", 变量值类型:", typeof(pCombox1))
Log("变量pCombox2:", pCombox2, ", 变量值类型:", typeof(pCombox2))
Log("变量pCombox3:", pCombox3, ", 变量值类型:", typeof(pCombox3))
Log("---------------------------开始测试加密串类型参数---------------------------")
Log("变量pSecretStr1:", pSecretStr1, ", 变量值类型:", typeof(pSecretStr1))
}

সম্পূর্ণ প্যারামিটার পরীক্ষার কৌশল: https://www.fmz.com/strategy/455212
উপরের পরামিতিগুলির মধ্যে একটি প্যারামিটার নির্ভরতা নকশা লুকানো আছে একটি নির্দিষ্ট প্যারামিটারের উপর ভিত্তি করে একটি সিরিজ সক্ষম করার জন্য প্রয়োজনীয়তা রয়েছে, যা এই মত পরামিতি নির্ভরতা ব্যবহার করে প্রয়োগ করা যেতে পারে।
উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মে পাঁচটি কৌশলগত ইন্টারেক্টিভ নিয়ন্ত্রণও রয়েছে এইবার অপ্টিমাইজ করা হয়েছে এবং আপগ্রেড করা হয়েছে। গ্রুপিং ফাংশন সহজ করার জন্য “কম্পোনেন্ট কনফিগারেশন” যোগ করা হয়েছে।

ইন্টারেক্টিভ কন্ট্রোল মূলত পলিসি ইন্টারফেস প্যারামিটারের “কম্পোনেন্ট কনফিগারেশন” এর মতোই, ডিফল্ট ইনপুট বক্স কন্ট্রোল ছাড়াও, কম্পোনেন্ট টাইপ এর জন্য সমর্থন যোগ করে:
ব্যবহার পদ্ধতি নীতি ইন্টারফেস প্যারামিটারের বিভিন্ন উপাদানের সাথে সামঞ্জস্যপূর্ণ, তাই আমি এখানে বিশদে যাব না।

ইন্টারেক্টিভ কন্ট্রোল এবং স্ট্র্যাটেজি ইন্টারফেস প্যারামিটারের “কম্পোনেন্ট কনফিগারেশন” মূলত একই।

ডিফল্ট ইনপুট বক্স নিয়ন্ত্রণ ছাড়াও, কম্পোনেন্ট টাইপও সমর্থন করে:

ইন্টারেক্টিভ কন্ট্রোলের ড্রপ-ডাউন বক্সটিও আপগ্রেড করা হয়েছে: “একাধিক নির্বাচন সমর্থন করুন”, “কাস্টম ডিফল্ট মান”, নির্দিষ্ট ডেটার সাথে বিকল্প বাঁধাই ইত্যাদি।
ডিফল্ট ড্রপ-ডাউন বক্স উপাদান ছাড়াও, যোগ করা হয়েছে:

বোতাম টাইপ ইন্টারেক্টিভ কন্ট্রোলে কোনো ইনপুট আইটেম নেই, এবং ট্রিগার করা হলে পাঠানো ইন্টারেক্টিভ কমান্ডের শুধুমাত্র বোতাম নিয়ন্ত্রণের নাম থাকে।
ম্যানুয়াল পরীক্ষা হল বোঝার সর্বোত্তম উপায়, এবং এখানে একটি পরীক্ষার কৌশলও প্রস্তুত করা হয়েছে।
এটি লক্ষ করা উচিত যে ব্যাকটেস্ট সিস্টেমে ইন্টারেক্টিভ নিয়ন্ত্রণগুলি পরীক্ষা করা যায় না, শুধুমাত্র বাস্তব পরীক্ষা তৈরি করা যেতে পারে।
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
এলোমেলোভাবে কিছু তথ্য লিখুন, কিছু বিকল্প সেট করুন এবং তারপরে একটি ইন্টারেক্টিভ বার্তা তৈরি করতে ইন্টারেক্টিভ কন্ট্রোল বোতামে ক্লিক করুন কৌশলটি বার্তাটি ক্যাপচার করার পরে মুদ্রণ করবে৷


সম্পূর্ণ ইন্টারেক্টিভ নিয়ন্ত্রণ পরীক্ষার কৌশল: https://www.fmz.com/strategy/455231
১. প্ল্যাটফর্মটি স্ট্রিং টাইপ এবং ড্রপ-ডাউন বক্স টাইপ ইন্টারফেস প্যারামিটার এবং ইন্টারেক্টিভ নিয়ন্ত্রণ আপডেট করেছে; এবং ২টি নতুন নিয়ন্ত্রণের জন্য সমর্থন যোগ করেছে:



function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}

参数test1使用币种控件选择后,test1的值为: BTC

参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter

function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}

test1:SOL

test2:XRP_USDT.swap