আপনি জানালেন, রাতে আপনার পেপার ট্রেডিং প্রক্রিয়াটি ক্র্যাশ করেছিল। পরের সিদ্ধান্তের আগেই সেটি আবার চালু করলেন, কোনো ত্রুটি দেখলেন না, আর ধরে নিলেন যে আগের জায়গা থেকেই কাজ শুরু হয়েছে। তারপর এটি এমন একটি অ্যাসেট কেনার অর্ডার দিল, যা আপনার আগে থেকেই ছিল। আপনি জানতে চান, কৌশলটিতে কোনো বাগ আছে কি না।
থাকতে পারে। তবে আগে দেখুন, আবার চালু হওয়া প্রক্রিয়াটি পেপার অ্যাকাউন্টের মতো একই তথ্য জানে কি না। পুনরায় চালু করা আসলে স্টেট পুনরুদ্ধারের সমস্যা: পজিশন, নগদ অর্থ, খোলা অর্ডার এবং পরের সিদ্ধান্তে প্রভাব ফেলা কৌশলের স্মৃতি—সবকিছুর মধ্যে মিল থাকতে হবে। কোড আবার চালু করাই সহজ অংশ।
ক্র্যাশের আগে কৌশলটি কী মনে করেছিল?
প্রক্রিয়াটি বন্ধ হওয়ার আগে নেওয়া শেষ সিদ্ধান্তটি লিখে রাখুন। প্রতিটি লেনদেন করা ইন্সট্রুমেন্টের জন্য কাঙ্ক্ষিত পজিশন, অ্যাকাউন্টের প্রকৃত পজিশন, বাকি থাকা অর্ডার এবং পরের পদক্ষেপে প্রভাব ফেলবে এমন সিগন্যালের স্টেট নথিভুক্ত করুন। এসব রেকর্ড না থাকলে, পুনরায় চালু করার সময় স্টেট ফিরে এসেছে, নাকি কৌশলটি শুধু নতুন করে শুরু হয়েছে—তা বোঝা যাবে না।
ধরা যাক, আপনার ঘণ্টাভিত্তিক কৌশল ট্রেন্ড সিগন্যাল পজিটিভ হলে 1 ইউনিট কেনে, তারপর সিগন্যাল নেগেটিভ না হওয়া পর্যন্ত ধরে রাখে। প্রক্রিয়াটি 14:00-এ কেনার অর্ডার পাঠাল, কিন্তু অর্ডারটি গ্রহণ করা হয়েছে বলে রেকর্ড করার আগেই ক্র্যাশ করল। পেপার ভেন্যু অর্ডারটি পূরণ করল। আবার চালু হলে কৌশলটি কোনো রেকর্ড করা পজিশন দেখে না, অথচ সিগন্যাল এখনও পজিটিভ; তাই এটি আরেকটি কেনার অর্ডার পাঠায়। সিগন্যাল ঠিকঠাকই কাজ করছে। অ্যাকাউন্টে কী আছে সে সম্পর্কে কৌশলটির স্মৃতি পুরোনো।
তাই নতুন অর্ডার দেওয়ার অনুমতি দেওয়ার আগে অ্যাকাউন্টের বর্তমান পজিশনের সঙ্গে সংরক্ষিত কৌশলগত স্টেট মিলিয়ে নিতে হবে। স্থানীয় স্ন্যাপশট কাজে লাগতে পারে, তবে আসলে কোন অর্ডার পূরণ হয়েছে, সে বিষয়ে অ্যাকাউন্ট বা ভেন্যুই চূড়ান্ত কর্তৃপক্ষ।
পুনরায় চালু হলেও কোন স্টেট টিকে থাকতে হবে?
পরের অর্ডার বদলে দিতে পারে—এমন স্টেট দিয়ে শুরু করুন। প্রতিটি আপডেটের জন্য টাইমস্ট্যাম্প ও সংস্করণসহ একটি স্থায়ী রেকর্ড রাখুন; পুনরুদ্ধারের যুক্তি বদলানোর আগে একটি কপি রাখুন, যাতে পরে ব্যর্থতার ঘটনাটি আবার চালিয়ে দেখা যায়।
| স্টেট | কেন গুরুত্বপূর্ণ | পুনরুদ্ধার যাচাই |
|---|---|---|
| পজিশন ও নগদ অর্থ | এগুলো এক্সপোজার ও কেনার জন্য উপলব্ধ অর্থ নির্ধারণ করে | সংরক্ষিত মানের সঙ্গে পেপার অ্যাকাউন্টের তুলনা করুন |
| খোলা অর্ডার | প্রক্রিয়াটি বন্ধ থাকা অবস্থায় কোনো অর্ডার পূরণ হয়ে থাকতে পারে | অর্ডারের স্ট্যাটাস যাচাই করুন এবং আংশিক পূরণ মিলিয়ে নিন |
| সিগন্যালের স্মৃতি | ক্রসওভার, কুলডাউন ও হোল্ডিং পিরিয়ড একাধিক সিদ্ধান্তজুড়ে চলতে পারে | সর্বশেষ কমিট করা সিদ্ধান্তের ইনপুট পুনরুদ্ধার করুন |
| সর্বশেষ প্রক্রিয়াকৃত ইভেন্ট | কৌশলটি ডেটা গ্রহণ করা কোথা থেকে আবার শুরু করবে, তা এটি নির্ধারণ করে | এর পরের ইভেন্টগুলো আবার চালান, তবে সেগুলো দ্বিতীয়বার প্রয়োগ করবেন না |
সিগন্যালের স্মৃতি সহজেই চোখ এড়িয়ে যায়। ক্রসওভারে ট্রেড করা কৌশল নতুন ক্রসওভার শনাক্ত করতে গতকালের ইন্ডিকেটর মান সংরক্ষণ করতে পারে। সেটি ফাঁকা রেখে কৌশল শুরু হলে, আগে থেকেই থাকা একটি শর্তকে নতুন ঘটনা বলে ভুল হতে পারে। কুলডাউন টাইমারেও একই সমস্যা: যে নিয়মটি বহাল থাকার কথা, পুনরায় চালু করলে তা যেন নীরবে রিসেট না হয়।
পুনরুদ্ধারকে কীভাবে বারবার একইভাবে করা যায়?
প্রতিটি অর্ডারকে কৌশলের রান ও সংশ্লিষ্ট সিদ্ধান্ত থেকে তৈরি একটি স্থায়ী ক্লায়েন্ট ID দিন। টাইমআউটের পর প্রক্রিয়াটি আবার চেষ্টা করলে, নতুন অর্ডার দেওয়ার বদলে সেটি যাচাই করতে পারবে যে ওই সিদ্ধান্তে আগে থেকেই কোনো অর্ডার তৈরি হয়েছে কি না। সংশ্লিষ্ট অ্যাকাউন্ট ইভেন্ট নিশ্চিত হওয়ার পরই স্টেটের পরিবর্তন রেকর্ড করুন, এবং পরিবর্তনটি ব্যাখ্যা করে এমন অর্ডার ও পূরণের ID সংরক্ষণ করুন।
এরপর যে পরিস্থিতিতে সমস্যা হয়েছিল, সেটিই পরীক্ষা করুন। একটি সিদ্ধান্ত পর্যন্ত কৌশল চালান, স্টেট সংরক্ষণ করুন, প্রক্রিয়াটি থামান, তারপর পেপার অ্যাকাউন্টের পজিশন ও অর্ডার ইতিহাসসহ পুনরুদ্ধার করুন। বিরতিহীনভাবে চালানো রানের সঙ্গে পরবর্তী সিদ্ধান্ত ও তৈরি হওয়া অর্ডারের তুলনা করুন। আংশিক পূরণ হওয়া অর্ডার এবং অর্ডার পাঠানো ও স্বীকৃতি পাওয়ার মাঝখানে ক্র্যাশ—দুই অবস্থাতেই আবার পরীক্ষা করুন। পুনরায় চালানো রান যেন নতুন পজিশন বানিয়ে না ফেলে বা সম্পন্ন পদক্ষেপ আবার না করে।
পুনরুদ্ধারের একটি লগ রাখুন: সর্বশেষ প্রক্রিয়াকৃত ইভেন্ট, অ্যাকাউন্ট স্ন্যাপশটের সময়, খোলা অর্ডারের স্ট্যাটাস, পুনরুদ্ধার করা কৌশলের সংস্করণ এবং পুনরায় চালুর পর প্রথম সিদ্ধান্ত। এতে “আবার চালু হয়েছে” কথাটিকে নিরীক্ষাযোগ্য তথ্যে পরিণত করা যায়।
পুনরায় চালুর পর কোন বিষয়টি বিশ্বাস করবেন?
অ্যাকাউন্ট ও কৌশলের স্টেট মিলে গেলে, অপেক্ষমাণ অর্ডারগুলোর স্ট্যাটাস জানা থাকলে, এবং পরবর্তী সিদ্ধান্তটি অবিচ্ছিন্নভাবে চালালে যে সিদ্ধান্ত আশা করতেন তার সঙ্গে মিললে তবেই প্রক্রিয়াটিকে বিশ্বাস করুন। কোনো অমিলের কারণ ব্যাখ্যা করতে না পারলে, পেপার অর্ডার পাঠানো থামিয়ে ইভেন্টের ধারাটি পরীক্ষা করুন। প্রক্রিয়া চলছে—এটাই প্রমাণ করে না যে কৌশলটি ঠিকভাবে পুনরুদ্ধার হয়েছে।
এই ক্র্যাশের উপকারী দিকটি আপনি ইতিমধ্যেই খুঁজে পেয়েছেন: এতে এমন একটি অনুমান সামনে এসেছে, যা স্বাভাবিক রান চলার সময় যাচাই করতে হয়নি। পুনরায় চালুর পরিস্থিতিকে বারবার পরীক্ষা করা যায় এমন করে তুলুন, তাহলে কৌশলকে আবার ট্রেড করতে বলার আগে সেটি কী মনে রেখেছে, তা জানতে পারবেন।
← সব পোস্ট


