
ভিজ্যুয়াল প্রোগ্রামিং সবসময় সফ্টওয়্যার টুল ডেভেলপারদের জন্য একটি আকাঙ্ক্ষিত লক্ষ্য, এমনকি পরিমাণগত ট্রেডিংয়ের ক্ষেত্রেও। কারণ ভিজ্যুয়ালাইজেশনের জন্য “আপনি যা দেখেন তাই আপনি যা পান” পদ্ধতিটি প্রোগ্রামিং বিকাশের প্রযুক্তিগত প্রান্তিকে অনেকটাই কমিয়ে দিয়েছে। ব্যবহারকারীদের আর একগুচ্ছ বিরক্তিকর কোডিংয়ের মুখোমুখি হতে হবে না, তাদের কেবল তাদের মস্তিষ্ক ব্যবহার করতে হবে, তাদের কল্পনা এবং যৌক্তিক চিন্তাভাবনা ব্যবহার করতে হবে এবং ব্যবসার উপরই ফোকাস করতে হবে। তুমি তোমার পছন্দের প্রোগ্রামটি বাস্তবায়ন করতে পারো, এটা কি অসাধারণ নয়!
তাহলে আসুন পরিমাণগত ট্রেডিং কৌশলগুলির ভিজ্যুয়াল প্রোগ্রামিংয়ের ক্ষেত্রে প্রবেশ করি!
https://www.fmz.com-এ লগ ইন করার পর, একটি অ্যাকাউন্ট নিবন্ধন করুন (যদি আপনি ইতিমধ্যে নিবন্ধিত হয়ে থাকেন তাহলে সরাসরি লগ ইন করুন), এবং ক্লিক করুন: কন্ট্রোল সেন্টার->পলিসি লাইব্রেরি->নতুন নীতি৷

আমরা একটি প্রাথমিক ভিজ্যুয়ালাইজেশন কৌশল দেখতে পারি। ফাংশনটি শুধুমাত্র ডিফল্ট কনফিগার করা এক্সচেঞ্জের অ্যাকাউন্ট সম্পদের তথ্য আউটপুট করার জন্য (ব্যাকটেস্ট বা রোবটে যোগ করা প্রথম বিনিময় বস্তু)। (নিচে দেখানো হয়েছে)

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

কিছু মডিউলের কিছু বিশেষ সেটিংস থাকে, উদাহরণস্বরূপ:

আপনি “প্রকল্প” মডিউলটিকে “যোগ করুন” মডিউলে বাম দিকে টেনে আনতে পারেন, যাতে আপনি একটি টেনন (অবতল) অবস্থান যোগ করতে পারেন, যার ফলে পাঠ্য বিভক্ত করার জন্য একটি অবস্থান যোগ করতে পারেন। এটি আপনাকে ছোট গিয়ারে ক্লিক করে মডিউলে কিছু সমন্বয় এবং সেটিংস করার অনুমতি দেবে।
কিছু মডিউলের জন্য কিছু প্যারামিটারের ইনপুট প্রয়োজন, যা হতে পারে সংখ্যাসূচক মান বা স্ট্রিং ইত্যাদি। আপনি যদি মডিউলের ইনপুট পরামিতি হিসাবে ভেরিয়েবল যোগ না করেন, তাহলে মডিউলটি ডিফল্ট ইনপুট পরামিতি অনুযায়ী কার্যকর হবে।
এই বর্গমূল গণনা মডিউলের অনুরূপ, এই মডিউলের গণনা ফলাফল আউটপুট।
এটি দেখা যায় যে ইনপুট প্যারামিটার পজিশন ডিফল্ট হলে, ডিফল্ট মান 9 ইনপুট প্যারামিটার হিসাবে ব্যবহার করা হবে এবং 9 এর বর্গমূল গণনা করা হবে।

অবশ্যই, যদি আপনি একটি ইনপুট প্যারামিটার হিসাবে একটি পরিবর্তনশীল মডিউল ব্যবহার করতে চান, আপনি সরাসরি পরিবর্তনশীল মডিউলটিকে টেনন (অবতল) অবস্থানে বিভক্ত করতে পারেন।

বাম মাউস বোতাম দিয়ে মডিউলগুলি ক্লিক এবং টেনে আনা যায়। মডিউল ctrl + c কী ব্যবহার করে কপি করা যায় এবং ctrl + v কী ব্যবহার করে পেস্ট করা যায়, কোড বা টেক্সট কপি এবং পেস্ট করার মতোই সুবিধাজনক। মাউস হুইল ব্যবহার করে অপারেশন এরিয়াটি উপরে বা নীচে স্কেল করা যেতে পারে এবং সমস্ত মডিউল উপরে বা নীচে স্কেল করা হবে। অপারেশন এলাকায় একটি ফাঁকা অবস্থানে ক্লিক করুন এবং ধরে রাখুন এবং অপারেশন এলাকা সরাতে টেনে আনুন। ট্র্যাশ ক্যান ডান রেকর্ডে সম্প্রতি মুছে ফেলা মডিউল. সবচেয়ে গুরুত্বপূর্ণ বিষয় হল, মডিউল কৌশল বিভক্ত করার পরে, “সংরক্ষণ করুন” ক্লিক করতে ভুলবেন না।
আপনি দেখতে পাচ্ছেন যে ভিজ্যুয়াল এডিটিং এরিয়ার বাম দিকে অনেক মডিউল ক্যাটাগরি আছে এবং অনেক ভিজ্যুয়াল মডিউল আছে যেগুলো প্রতিটি ক্যাটাগরির প্রোজেক্টে ব্যবহার করা যেতে পারে।
মোট ১১টি বিভাগে বিভক্ত।

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

জাভাস্ক্রিপ্ট ভাষার কোডের মত:
function main(){
Log("你好,可视化编程!")
}
এই মডিউলটির “আউটপুট ইনফরমেশন” এর মতোই চেহারা রয়েছে, কিন্তু পার্থক্য হল এটি তথ্য আউটপুট করে এবং একই সাথে বর্তমান অ্যাকাউন্টের সাথে আবদ্ধ WeChat-এ তথ্য পুশ করে।

জাভাস্ক্রিপ্ট ভাষার কোডের মত:
function main () {
Log("微信推送!@")
}
থ্রো এক্সেপশন মডিউল প্রোগ্রামটিকে একটি ত্রুটি ইস্যু করতে দেয় এবং তারপর প্রোগ্রামটি এক্সিকিউশন বন্ধ করে দেয় (ব্যতিক্রম হ্যান্ডলিং কোড না লিখে)।

জাভাস্ক্রিপ্ট কৌশলের অনুরূপ, থ্রো “স্ট্রিং টু বি আউটপুট” ফাংশনটি সরাসরি প্রধান ফাংশনে কার্যকর করা হয়।
function main () {
throw "第一句就抛出异常,让程序停止!"
}
ব্যাকটেস্ট ফলাফল:
সাধারণত, এটি ডিবাগিংয়ের সময় বেশি ব্যবহার করা হয়, উদাহরণস্বরূপ, আপনি কিছু নির্দিষ্ট শর্তে প্রোগ্রামটি বন্ধ করতে চান এবং সহজ পর্যবেক্ষণের জন্য কিছু ডেটা মুদ্রণ করতে চান।
অথবা কোড ফ্লোতে একটি নিক্ষেপ ব্যতিক্রম মডিউল রাখুন যেখানে সমস্যা হতে পারে, যাতে প্রোগ্রামটি ত্রুটির প্রতিবেদন করতে পারে এবং কিছু ত্রুটি খুঁজে পেতে পারে।
শীতনিদ্রা মডিউল
জাভাস্ক্রিপ্ট কৌশলের মতো:
function main () {
Sleep(1000 * 5)
}
হাইবারনেশন মডিউল পরীক্ষা করুন:
ব্যাকটেস্ট ফলাফল:


এই মডিউলটি উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের API ফাংশন LogProfit এর মত কাজ করে, আয় লগ মুদ্রণ করে এবং ইনপুট প্যারামিটারের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে আয় বক্ররেখা অঙ্কন করে।
যেমন:
ব্যাকটেস্ট এক্সিকিউশনটি চিত্রে দেখানো হয়েছে:
সংশ্লিষ্ট জাভাস্ক্রিপ্ট নীতি কোড নিম্নরূপ:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
আপনি যেখানে আয়ের তথ্য আউটপুট করতে চান সেখানে এটি বিভক্ত করা যেতে পারে।
লুপ মডিউলটি বিভক্ত মডিউল সংমিশ্রণের একটি সিরিজ মোড়ানো এবং এই মডিউল সংমিশ্রণটিকে একটি লুপে কার্যকর করতে দিতে পারে।
পরীক্ষা:
ব্যাকটেস্ট ফলাফল:
আপনি দেখতে পারেন যে লুপ মডিউলটি মুদ্রণ আয় এবং ঘুমের সমন্বয়ে গঠিত মডিউল সংমিশ্রণটি মোড়ানোর পরে, মডিউল সংমিশ্রণটি ক্রমাগতভাবে কার্যকর করা হবে।
এই মডিউলের ব্যবহার মূলত লুপ মডিউলের মতই।

এই মডিউলটি ব্যবহার করা যেতে পারে যখন পরিবর্তনশীল মডিউল বা সংখ্যাসূচক মান সঠিকতা নিয়ন্ত্রণ করতে হবে।
উদাহরণস্বরূপ, 3.1415926535897 মানের ক্ষেত্রে নির্ভুলতা প্রয়োগ করা হয়।

ব্যাকটেস্ট শো:


লগ সাফ করতে ব্যবহার করা হয় ইনপুট প্যারামিটারের উপর নির্ভর করে, লগের একটি অংশ ধরে রাখা যায়। API ডকুমেন্টেশন হিসাবে:
LogReset()

রাজস্ব লগ সাফ করতে ব্যবহৃত হয়। ইনপুট প্যারামিটারের উপর নির্ভর করে, লগের একটি অংশ ধরে রাখা যেতে পারে। API ডকুমেন্টেশন হিসাবে:
LogProfitReset()

এই টুল মডিউলটিকে “ট্রেডিং মডিউল টাইপ”-এ বাজার মডিউলের সাথে একত্রে ব্যবহার করতে হবে, যেমনটি চিত্রে দেখানো হয়েছে:

সর্বশেষ টিকার বাজারের সর্বশেষ লেনদেনের মূল্য আউটপুট করতে আউটপুট তথ্য মডিউল ব্যবহার করুন:

ব্যাকটেস্ট শো:

জাভাস্ক্রিপ্ট নীতি কোডের মত:
function main () {
Log(exchange.GetTicker().Last)
}

এই মডিউলটিকে “ট্রেডিং মডিউল টাইপ”-এ কে-লাইন ডেটা অধিগ্রহণ মডিউলের সাথে একসাথে ব্যবহার করতে হবে।
প্রথমে একটি পরিবর্তনশীল মডিউল তৈরি করুন এবং এটির নাম দিন: K লাইন।
তারপর কে-লাইন ডেটা প্রাপ্ত করুন, এটি পেতে কে-লাইন ডেটা মডিউল ব্যবহার করুন এবং এটি পরিবর্তনশীল মডিউলে বরাদ্দ করুন: “কে-লাইন”।
তারপর কে-লাইন ভেরিয়েবল মডিউলের দৈর্ঘ্য পেতে “লিস্ট মডিউল টাইপ”-এ তালিকার দৈর্ঘ্য মডিউলটি ব্যবহার করুন, যা K-লাইনের কোন বারে ডেটা পেতে হবে তা নির্দিষ্ট করতে ব্যবহৃত হয়।
একসাথে বিভক্ত, যেমন চিত্রে দেখানো হয়েছে:
যখন ব্যাকটেস্ট চালানো হয়, শেষ কে-লাইন বারের টাইমস্ট্যাম্প মুদ্রিত হয়।


এটি “ট্রানজেকশন মডিউল টাইপ”-এ গেট ডেপথ ডেটা মডিউলের সাথেও ব্যবহার করা প্রয়োজন।

সূচকটি 0 তে সেট করুন, একটি বিক্রয় অর্ডার সেট করুন এবং বিক্রয়ের এক অর্ডারের তথ্য পান।

জাভাস্ক্রিপ্ট কৌশল কোডের মতো:
function main () {
Log(exchange.GetDepth().Asks[0])
}
এই মডিউলটি গেট অ্যাসেট ইনফরমেশন মডিউলের সাথে একসাথে ব্যবহার করা দরকার।

উদাহরণস্বরূপ: বর্তমান অ্যাকাউন্টে উপলব্ধ কয়েনের সংখ্যা প্রিন্ট করুন

ব্যাকটেস্ট শো:

জাভাস্ক্রিপ্ট কৌশলের মত:
function main () {
Log(exchange.GetAccount().Stocks)
}

এই মডিউলটি অর্ডার ডেটাতে একটি নির্দিষ্ট বৈশিষ্ট্যের মান পেতে ব্যবহার করা হয়, যেমন অর্ডার বইতে একটি বিক্রির মূল্য বা পরিমাণ (ক্রমিক নম্বর 13-এর উদাহরণ)।

ব্যাকটেস্ট ফলাফল:
জাভাস্ক্রিপ্ট কৌশলের মত:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
এটি “কোয়েরি অর্ডার বিশদ মডিউল” (উন্নত অধ্যায়ে ব্যাখ্যা করা হবে) দ্বারা প্রত্যাবর্তিত অর্ডার তথ্যে একটি নির্দিষ্ট বৈশিষ্ট্য পেতেও ব্যবহার করা যেতে পারে।

একইভাবে, যখন “গেট ফিউচার পজিশন মডিউল” এর সাথে একত্রে ব্যবহার করা হয়, তখন এটি লক্ষ করা উচিত যে “গেট ফিউচার পজিশন মডিউল” দ্বারা প্রত্যাবর্তিত পজিশন ডেটা একটি অ্যারে (তালিকা), যা বিভিন্ন চুক্তি এবং নির্দেশাবলীতে অবস্থান সমন্বিত একটি ডেটা কাঠামো। . অতএব, বিশেষভাবে ব্যবহার করার সময় সূচকটি অবশ্যই উল্লেখ করতে হবে।
এত কিছু শেখার পরে, আসুন একসাথে একটি হেজিং অপারেশনকে একত্রিত করি, অর্থাৎ, একই সময়ে নিকটবর্তী এবং ফরোয়ার্ড উভয় চুক্তিতে হেজিং। আমরা একটি ফরোয়ার্ড আরবিট্রেজ হেজিং করি, অর্থাৎ, 1টি চুক্তির সাথে একটি সংক্ষিপ্ত ফরোয়ার্ড চুক্তি এবং 1টি চুক্তির সাথে একটি দীর্ঘ ভবিষ্যত চুক্তি খুলি।

ব্যাকটেস্ট ফলাফল:

ভিজ্যুয়াল উদাহরণ কৌশল:
আরও কৌশল এখানে: https://www.fmz.com/square
এই সিরিজের অন্যান্য নিবন্ধ