3.1 পরিমাণগত ট্রেডিং প্রোগ্রামিং ভাষা মূল্যায়ন

লেখক:ভাল, তৈরিঃ 2019-04-18 15:03:37, আপডেটঃ 2019-04-27 11:54:49

সংক্ষিপ্তসার

অধ্যায় 1 এবং 2 এ, আমরা পরিমাণগত ট্রেডিংয়ের মূল বিষয়গুলি এবং FMZ Quant সরঞ্জামগুলির ব্যবহারগুলি শিখেছি। এই অধ্যায়ে, আমরা প্রকৃত ট্রেডিং কৌশলগুলি বাস্তবায়ন করব। যদি একজন কর্মী কিছু ভাল করতে চান তবে তাকে প্রথমে তার সরঞ্জামগুলি তীক্ষ্ণ করতে হবে। একটি ট্রেডিং কৌশল বাস্তবায়নের জন্য আপনাকে প্রথমে একটি প্রোগ্রামিং ভাষায় আয়ত্ত করতে হবে। এই বিভাগে প্রথমে পরিমাণগত ট্রেডিংয়ের মূলধারার প্রোগ্রামিং ভাষাগুলির পাশাপাশি প্রতিটি প্রোগ্রামিং ভাষার বৈশিষ্ট্যগুলি পরিচয় করিয়ে দেওয়া হয়।

প্রোগ্রামিং ভাষা কি?

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

ঠিক যেমন বাবা-মা আমাদের কথা বলতে শিখিয়েছেন এবং অন্য লোকেরা কী বলছে তা বুঝতে শিখিয়েছেন। দীর্ঘকালের শিক্ষণ এবং স্ব-শিক্ষার পরে, আমরা এটি না জেনে কথা বলতে শিখেছি এবং অন্য শিশুদের কথা বলার অর্থ বুঝতে পারি। চীনা, ইংরেজি, ফরাসি ইত্যাদি সহ অনেকগুলি ভাষা রয়েছে, যেমনঃ

  • চীনাঃ হ্যালো ওয়ার্ল্ড

  • ইংরেজিঃ Hello World

  • ফরাসিঃ Bonjour tout le monde

আপনি যদি আপনার কম্পিউটারের স্ক্রিনে হ্যালো ওয়ার্ল্ড প্রদর্শনের জন্য প্রোগ্রামিং ভাষা ব্যবহার করেন, তাহলে এটি হবেঃ

  • সি ভাষাঃ puts (হ্যালো ওয়ার্ল্ড);

  • জাভা ভাষা: System.out.println ((হ্যালো ওয়ার্ল্ড);

  • পাইথন ভাষাঃ মুদ্রণ (হ্যালো ওয়ার্ল্ড)

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

প্রোগ্রামিং ভাষার শ্রেণীবিভাগ

রেফারেন্স এবং তুলনা সহজ করার জন্য, আপনার জন্য উপযুক্ত পরিমাণগত ট্রেডিং প্রোগ্রামিং ভাষা চয়ন করুন। আমরা ছয়টি সর্বাধিক ব্যবহৃত প্রোগ্রামিং ভাষা শ্রেণীবদ্ধ করবঃ পাইথন, ম্যাটল্যাব / আর, সি ++, জাভা / সি #, ইজি ল্যাঙ্গুয়েজ এবং ভিজ্যুয়াল প্রোগ্রামিং ভাষা (নীচে দেখানো হয়েছে) ।

img

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

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

ভিজ্যুয়াল প্রোগ্রামিং

ভিজ্যুয়াল প্রোগ্রামিং অনেকদিন ধরেই আছে, এই ধরনের what you see is what you get প্রোগ্রামিং আইডিয়া, বিভিন্ন কন্ট্রোল মডিউল দিয়ে সজ্জিত, শুধু ড্র্যাগ অ্যান্ড ড্রপ করে, আপনি কোড লজিক তৈরি করতে পারেন, ট্রেডিং কৌশল ডিজাইন সম্পূর্ণ করুন, প্রক্রিয়াটি বিল্ডিং ব্লকের মতো।

img img

উপরে যেমন দেখানো হয়েছে, একই পদ্ধতিটি FMZ Quant ট্রেডিং প্ল্যাটফর্মের ভিজ্যুয়াল প্রোগ্রামিংয়ের কোডের মাত্র কয়েক লাইন। এটি প্রোগ্রামিংয়ের প্রান্তিককে ব্যাপকভাবে হ্রাস করে, বিশেষত ট্রেডারদের জন্য যারা প্রোগ্রামিং বুঝতে পারে না, যা একটি দুর্দান্ত অপারেটিং অভিজ্ঞতা।

যেহেতু এই ভিজ্যুয়াল প্রোগ্রামিংয়ের অন্তর্নিহিত বাস্তবায়ন কৌশলটি সি ++ তে রূপান্তরিত হয়েছে, তাই এটি প্রোগ্রামের চলমান গতিতে সামান্য প্রভাব ফেলে। তবে, কার্যকারিতা এবং স্কেলযোগ্যতা দুর্বল, এবং একটি ট্রেডিং কৌশল বিকাশ করা অসম্ভব যা খুব জটিল এবং খুব পরিমার্জিত।

ইজি ল্যাঙ্গুয়েজ

img

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

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

পাইথন

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

img

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

আর্থিক প্রকৌশলের জন্য, আরও লক্ষ্যবস্তু লাইব্রেরি হল পান্ডা, দুটি ডেটা স্ট্রাকচার, সিরিজ এবং ডেটাফ্রেম সহ, যা সময় সিরিজ প্রক্রিয়াকরণের জন্য আদর্শ।

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

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

Matlab/R

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

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

সি++

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

বর্তমানে, সি ++ এখনও উচ্চ-ক্ষমতা, উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ের জন্য পছন্দের প্রোগ্রামিং ভাষা। কারণটি সহজ। কারণ সি ++ ভাষার বৈশিষ্ট্যগুলি কম্পিউটারের অন্তর্নিহিত স্তরে অ্যাক্সেস করা সহজ, এটি উচ্চ-কার্যকারিতা ব্যাকটেস্টিং এবং এক্সিকিউশন সিস্টেমগুলি বিকাশের জন্য সবচেয়ে কার্যকর সরঞ্জাম যা প্রচুর পরিমাণে ডেটা প্রক্রিয়া করে।

জাভা/সি#

জাভা / সি # হ'ল স্ট্যাটিক ভাষা যা ভার্চুয়াল মেশিনে চালিত হয়। সি ++ এর তুলনায়, কোনও অ্যারে সীমাবদ্ধ নয়, কোনও কোরেডাম্প নেই, নিক্ষেপিত ব্যতিক্রমগুলি ত্রুটি কোডটি সঠিকভাবে সনাক্ত করতে পারে, স্বয়ংক্রিয় আবর্জনা সংগ্রহের প্রক্রিয়া আনতে পারে, মেমরি ফুটো সম্পর্কে চিন্তা করার দরকার নেই ইত্যাদি। সুতরাং ব্যাকরণ শেখার অসুবিধার দিক থেকে, তারা সি ++ এর চেয়েও সহজ। গতির দিক থেকে, কারণ তাদের ভার্চুয়াল মেশিনগুলি রানটাইমে কম্পাইল করা জেআইটি ফাংশনগুলির সাথে আসে, গতিটি কেবল সি ++ এর চেয়ে দ্বিতীয়।

কিন্তু কার্যকারিতার দিক থেকে, C++ এর মতো অন্তর্নিহিত ট্রেডিং সিস্টেমকে অপ্টিমাইজ করা অসম্ভব। সম্প্রসারণ কর্মক্ষমতা দিক থেকে, এটি C++ এর চেয়ে দুর্বল, কারণ তাদের সম্প্রসারণের জন্য C সেতু অতিক্রম করতে হবে, এবং দুটি ভাষা নিজেই ভার্চুয়াল মেশিনে চালিত হয়, তাই ফাংশন মডিউল সম্প্রসারণ করার সময়, আপনাকে আরও একটি স্তর প্রাচীর অতিক্রম করতে হবে।

সংক্ষেপে

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

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

স্কুলের পর ব্যায়াম

  1. একটি পরিমাণগত ট্রেডিং টুল হিসেবে পাইথন ভাষার সুবিধা কি?

  2. এম ভাষায় কিছু সাধারণভাবে ব্যবহৃত এপিআই লিখতে চেষ্টা করুন?

পরবর্তী বিভাগের বিজ্ঞপ্তি

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


আরো