রিসোর্স লোড হচ্ছে... লোডিং...

গঠন

বাণিজ্য

বাজার লেনদেনের রেকর্ডের কাঠামো।

বাজার লেনদেন রেকর্ড আইডি, অথবা যদি এক্সচেঞ্জ ইন্টারফেস একটি আইডি প্রদান করে না, তাহলে এটি পূরণ করার জন্য একটি টাইমস্ট্যাম্প ব্যবহার করুন। আইডি স্ট্রিং মিলিসেকেন্ড টাইমস্ট্যাম্প। সময় সংখ্যা লেনদেনের মূল্য। দাম সংখ্যা লেনদেনের পরিমাণ। পরিমাণ সংখ্যা অর্ডার টাইপ, {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL} এ পড়ুন। প্রকার সংখ্যা

exchange.GetTrades() ফাংশন ট্রেড বা একটি খালি অ্যারে একটি অ্যারে ফেরত দেয়।

{@fun/Market/exchange.GetTrades বিনিময়.GetTrades}

টিককার

বাজারের কাঠামো।

এক্সচেঞ্জ ইন্টারফেস দ্বারা ফিরে আসা মূল তথ্য, ব্যাকটেস্টিংয়ের জন্য এমন কোনও বৈশিষ্ট্য উপলব্ধ নেই। তথ্য বস্তু দ্যSymbolক্ষেত্রটি হল FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং জাতের কোড।

  • স্পট এক্সচেঞ্জ অবজেক্টের জন্য,Symbolক্ষেত্রের মান (উদাহরণস্বরূপ):BTC_USDT, BTC_USDT স্পট ট্রেডিং জোড়া নির্দেশ করে।
  • ফিউচার এক্সচেঞ্জ অবজেক্টের জন্য, ফর্ম্যাটSymbolক্ষেত্র মান (উদাহরণস্বরূপ) হলBTC_USDT.swap, যা বিটিসির জন্য ইউএসডিটি সম্পত্তি চিরস্থায়ী চুক্তির প্রতিনিধিত্ব করে।
  • ফিউচার এক্সচেঞ্জের জন্য, ফর্ম্যাটSymbolক্ষেত্রের মান হল (উদাহরণস্বরূপ):BTC_USDT.BTC-240108-40000-C, যা ইউএসডিটি-তে বিটিসির একটি ক্যাল অপশন চুক্তির প্রতিনিধিত্ব করে, যার কার্যকর তারিখ ৮ জানুয়ারি ২০২৪ এবং কার্যকর মূল্য ৪০,০০০।

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

exchange.GetTicker() ফাংশন একটি টিকার গঠন প্রদান করে। অপশন চুক্তির ক্ষেত্রে,exchange.GetTicker()ফাংশন কল ত্রুটির প্রবণতা হয়। কারণ বিকল্প চুক্তি বাজারের তরলতা সাধারণত দরিদ্র, প্রায়ই প্রথম কিনতে বা প্রথম বিক্রয় জন্য কোন মুলতুবি আদেশ আছে। এই সময়ে যখন FMZ নীচের স্তর সনাক্ত করে যেTickerকাঠামো ক্ষেত্রBuyঅথবাSell0 হলে, একটি ত্রুটি প্রম্পট চালু হবে।

{@fun/Market/exchange.GetTicker বিনিময়.GetTicker}, {@fun/Market/exchange.GetTickers বিনিময়.GetTickers}

রেকর্ড

K-Line Bar এর কাঠামো, স্ট্যান্ডার্ড OHLC কাঠামো, গণনা এবং বিশ্লেষণের জন্য K- লাইন এবং সূচক আঁকতে ব্যবহৃত হয়।

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

exchange.GetRecords() ফাংশন রেকর্ডের একটি অ্যারে বা একটি খালি অ্যারে ফেরত দেয়। প্রতিটি রেকর্ড কাঠামো একটি কে-লাইন বার, অর্থাৎ একটি কে-লাইন বার উপস্থাপন করে।

{@fun/Market/exchange.GetRecords বিনিময়.GetRecords}

ক্রম

অর্ডারের কাঠামো।

এক্সচেঞ্জ ইন্টারফেস প্রতিক্রিয়ার মূল তথ্য, ব্যাকটেস্টিংয়ের জন্য এই ধরনের কোনও বৈশিষ্ট্য উপলব্ধ নেই। তথ্য বস্তু দ্যSymbolএই ক্ষেত্রটি হল FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং প্রোডাক্ট কোড এবং এর বিন্যাসটিSymbol{@struct/Ticker Ticker} কাঠামোর ক্ষেত্র।

  • স্পট এক্সচেঞ্জের জন্য,Symbolক্ষেত্রের মান হল (উদাহরণস্বরূপ):BTC_USDT, BTC_USDT স্পট ট্রেডিং জোড়া নির্দেশ করে।
  • ফিউচার এক্সচেঞ্জের জন্য, ফর্ম্যাটSymbolক্ষেত্রের মান হল (উদাহরণস্বরূপ):BTC_USDT.swap, যা বিটিসির ইউএসডিটি-স্ট্যান্ডার্ড চিরস্থায়ী চুক্তির প্রতিনিধিত্ব করে।

প্রতীক স্ট্রিং অর্ডার আইডি, এই বৈশিষ্ট্যটি এক্সচেঞ্জ পণ্য কোড এবং এক্সচেঞ্জ মূল অর্ডার আইডি নিয়ে গঠিত, ইংরেজি কমা দ্বারা পৃথক। উদাহরণস্বরূপ, বৈশিষ্ট্যIdস্পট ট্রেডিং জোড়ার বিন্যাসETH_USDTOKX এক্সচেঞ্জের ক্রম হলঃETH-USDT,1547130415509278720. আইডি স্ট্রিং অর্ডারের মূল্য, মনে রাখবেন যে এই বৈশিষ্ট্যটি বাজার অর্ডারের জন্য 0 বা -1 হতে পারে। দাম সংখ্যা অর্ডার সংখ্যা, মনে রাখবেন যে বাজার অর্ডারের এই বৈশিষ্ট্যটি একটি পরিমাণ হতে পারে, মুদ্রা নয়। পরিমাণ সংখ্যা লেনদেনের সংখ্যা, যদি এক্সচেঞ্জ ইন্টারফেস এই তথ্য প্রদান না করে তবে 0 দিয়ে প্যাড করা যেতে পারে। চুক্তির পরিমাণ সংখ্যা গড় লেনদেনের মূল্য, মনে রাখবেন যে কিছু এক্সচেঞ্জ এই তথ্য প্রদান করে না। এই বৈশিষ্ট্যটি 0 এ সেট করা হয় যদি এটি উপলভ্য না হয় এবং গণনা করা যায় না। গড় মূল্য সংখ্যা অর্ডার অবস্থা, {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN ORDER_STATE_UNKNOWN} এ উল্লেখ করুন। অবস্থা সংখ্যা অর্ডার প্রকার, {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL} এ পড়ুন। প্রকার সংখ্যা কন্ট্রাক্ট অর্ডারের খোলার এবং বন্ধের দিকের জন্য, {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE} দেখুন। অফসেট সংখ্যা স্পট অর্ডারে এই বৈশিষ্ট্যটি হল"", অর্থাৎ খালি স্ট্রিং। একটি চুক্তি অর্ডারে, এই বৈশিষ্ট্যটি নির্দিষ্ট চুক্তি কোড। চুক্তির ধরন স্ট্রিং

দ্যOrderঅর্ডার কাঠামো দ্বারা ফিরে আসতে পারেexchange.GetOrder()এবংexchange.GetOrders()ফাংশনexchange.GetOrders()ফাংশন একটি অ্যারে ফেরৎOrderগঠন বা একটি খালি অ্যারে. যদি কোন অসম্পূর্ণ আদেশ নেই, এটি ফেরত[], যা একটি খালি অ্যারে.Statusসম্পত্তিOrderঅর্ডার কাঠামো সরাসরি যেমন ধ্রুবক সঙ্গে তুলনা করা যেতে পারেORDER_STATE_PENDINGতারা সমান কিনা তা নির্ধারণ করতে এবং এইভাবে অর্ডারের অবস্থা নির্ধারণ করতে।

একমুখী পজিশন মোডের জন্য, যখন অর্ডারটি একটি বন্ধ (হ্রাস) অর্ডার কিনা তা নির্ধারণ করা অসম্ভব,Offsetক্ষেত্রটি ডিফল্টরূপে খোলার দিকে সেট করা আছে, অর্থাৎ,ORDER_OFFSET_OPEN.

{@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}

অর্ডার বুক

বাজারের গভীরতার অর্ডার কাঠামো।

দাম। দাম সংখ্যা পরিমাণ। পরিমাণ সংখ্যা

GetDepth() ফাংশন একটি ডাটা স্ট্রাকচার রিটার্ন করে যার মধ্যে Bids, Asks এর অ্যাট্রিবিউট ভ্যালু অর্ডারবুক অ্যারে।

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/Depth Depth}

গভীরতা

বাজারের গভীরতার কাঠামো।

বিক্রয় অর্ডার অ্যারে, অর্থাৎ অর্ডারবুক অ্যারে, সর্বনিম্ন থেকে সর্বোচ্চ পর্যন্ত মূল্য অনুসারে সাজানো হয় এবং অ্যারেতে প্রথম অর্ডারবুক কাঠামোর সর্বনিম্ন মূল্য রয়েছে। জিজ্ঞেস করে অ্যারে ক্রয় অর্ডার অ্যারে, অর্থাৎ অর্ডারবুক অ্যারে, সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত মূল্য অনুসারে সাজানো হয় এবং অ্যারেতে প্রথম অর্ডারবুক কাঠামোর সর্বোচ্চ মূল্য রয়েছে। দরপত্র অ্যারে মিলিসেকেন্ড স্তরের টাইমস্ট্যাম্প। সময় সংখ্যা

exchange.GetDepth (()) ফাংশন একটি Depth গঠন প্রদান করে।

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/OrderBook OrderBook}

অ্যাকাউন্ট

অ্যাকাউন্টের তথ্যের কাঠামো।

এক্সচেঞ্জ ইন্টারফেস দ্বারা ফিরে আসা মূল তথ্য, ব্যাকটেস্টিংয়ের জন্য এমন কোনও বৈশিষ্ট্য উপলব্ধ নেই। তথ্য বস্তু উপলব্ধ মুদ্রা সংখ্যা, স্পট, যদি ট্রেডিং জোড়া BTC_USDT হয়, ব্যালেন্স বর্তমানে উপলব্ধ USDT সংখ্যা বোঝায়। ইউ-স্ট্যান্ডার্ড চুক্তিতে, ব্যালেন্স উপলব্ধ মার্জিনের পরিমাণ বোঝায় (USDT, quoteCurrency) । ব্যালেন্স সংখ্যা অর্ডারটি পূরণ না হলে জমা থাকা সম্পদের মূল্য। হিমায়িত ব্যালেন্স সংখ্যা উপলব্ধ ট্রেডিং মুদ্রার সংখ্যা, স্পট, যদি ট্রেডিং জোড়াটি BTC_USDT হয়, স্টক বর্তমানে উপলব্ধ বিটিসির সংখ্যা বোঝায়। স্টকগুলি মুদ্রা ভিত্তিক চুক্তিতে উপলব্ধ মার্জিনের সংখ্যা (মুদ্রা, বেস মুদ্রা) বোঝায়। স্টক সংখ্যা অর্ডারটি পূরণ না হলে জমা থাকা সম্পদের মূল্য। ফ্রিজড স্টক সংখ্যা শুধুমাত্র ফিউচার এক্সচেঞ্জের বস্তু এই ক্ষেত্রটি সমর্থন করে।Equityক্ষেত্রটি বর্তমান চুক্তি সেটিং এর অধীনে ফিউচার অ্যাকাউন্টের মার্জিনের মোট স্বত্ব। যদি এক্সচেঞ্জ ইন্টারফেস প্রাসঙ্গিক তথ্য প্রদান করে না, এই ক্ষেত্রটি 0 হয়।

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

ইউপিএনএল সংখ্যা

exchange.GetAccount() ফাংশন একটি অ্যাকাউন্ট কাঠামো ফেরত দেয়। ফেরত কাঠামোর ডেটা বর্তমানে সেট ট্রেডিং জোড়া, চুক্তি কোডের উপর নির্ভর করে।

{@fun/Account/exchange.GetAccount বিনিময়.GetAccount}

সম্পদ

নির্দিষ্ট মুদ্রা সম্পদের তথ্যের কাঠামো

ক্রিপ্টোকারেন্সি সম্পদের জন্য এক্সচেঞ্জ-সংজ্ঞায়িত নাম, যা একই ক্রিপ্টোকারেন্সির জন্য এক্সচেঞ্জ থেকে এক্সচেঞ্জে পরিবর্তিত হতে পারে, যেমনঃBTCনামকরণ করা যেতে পারেXBTকিছু এক্সচেঞ্জে। মুদ্রা স্ট্রিং মুদ্রা সম্পদের উপলব্ধ ভারসাম্য। পরিমাণ সংখ্যা মুদ্রায় জমা থাকা সম্পদের সংখ্যা। হিমায়িত পরিমাণ সংখ্যা

দ্যFrozenAmountমুদ্রা সম্পদের মধ্যে রয়েছে অব্যবহৃত অর্ডারের জন্য লক করা সম্পদ এবং ফিউচার পজিশনের জন্য লক করা মার্জিন অংশ।

{@fun/Account/exchange.GetAssets বিনিময়.GetAssets} {@fun/Account/exchange.GetAssets বিনিময়.GetAssets}

অবস্থান

চুক্তি পজিশনের তথ্যের কাঠামো।

এক্সচেঞ্জ ইন্টারফেস দ্বারা ফিরে আসা মূল তথ্য, ব্যাকটেস্টিংয়ের জন্য এমন কোনও বৈশিষ্ট্য উপলব্ধ নেই। তথ্য বস্তু দ্যSymbolএই ক্ষেত্রটি হল FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং প্রোডাক্ট কোড এবং এর বিন্যাসটিSymbol{@struct/Ticker Ticker} কাঠামোর ক্ষেত্র।

  • স্পট এক্সচেঞ্জের জন্য,Symbolক্ষেত্রের মান হল (উদাহরণস্বরূপ):BTC_USDT, BTC_USDT স্পট ট্রেডিং জোড়া নির্দেশ করে।
  • ফিউচার এক্সচেঞ্জের জন্য, ফর্ম্যাটSymbolক্ষেত্রের মান হল (উদাহরণস্বরূপ):BTC_USDT.swap, যা বিটিসির ইউএসডিটি-স্ট্যান্ডার্ড চিরস্থায়ী চুক্তির প্রতিনিধিত্ব করে।

প্রতীক স্ট্রিং পজিশন বার আকার, যদি এক্সচেঞ্জ ইন্টারফেস এই তথ্য প্রদান করে না, এটি ভুল হতে পারে। মার্জিন লেভেল সংখ্যা পজিশনের আকার, যা সাধারণত একটি ধনাত্মক পূর্ণসংখ্যা (চুক্তির সংখ্যা সংখ্যা) । মনে রাখবেন যে চুক্তির স্পেসিফিকেশন যেমন চুক্তির গুণক, মান ইত্যাদি এক বিনিময় থেকে অন্যটিতে পৃথক হতে পারে। পরিমাণ সংখ্যা পজিশন ফ্রিজিংয়ের পরিমাণ, বন্ধ অর্ডারটি পূরণ না হলে সাময়িকভাবে ফ্রিজ করা পজিশনের সংখ্যা। হিমায়িত পরিমাণ সংখ্যা পজিশনের গড় মূল্য, যা নীতিগতভাবে পজিশনের গড় মূল্য (নিয়ন্ত্রণে অংশগ্রহণ করে না) । যদি ডেটা বিনিময় ইন্টারফেস দ্বারা সরবরাহ করা হয় না, তবে এটি বিনিময় ইন্টারফেসটিতে উপলব্ধ পজিশনের গড় মূল্য দিয়ে পূরণ করা হয় (নিয়ন্ত্রণে অংশগ্রহণ করে) । দাম সংখ্যা পজিশনের ফ্লোটিং মুনাফা/হানি মূলত পজিশনের অব্যবহৃত মুনাফা/হানি, যদি ডেটা এক্সচেঞ্জ ইন্টারফেস দ্বারা সরবরাহ করা না হয়, তবে এটি এক্সচেঞ্জ ইন্টারফেসটির অন্যান্য মুনাফা/হানি ডেটা দিয়ে পূরণ করা হবে। মুনাফা ও ক্ষতির মূল্যের ইউনিটটি বর্তমান চুক্তি মার্জিনের ইউনিটের সাথে একই। মুনাফা সংখ্যা পজিশন টাইপ, {@var/POSITION_DIRECTION/PD_LONG PD_LONG}, {@var/POSITION_DIRECTION/PD_SHORT PD_SHORT} এ উল্লেখ করুন। প্রকার সংখ্যা চুক্তির কোড, বিস্তারিত জানার জন্য {@fun/Futures/exchange.SetContractType exchange.SetContractType} ফাংশনের বর্ণনা দেখুন। চুক্তির ধরন স্ট্রিং এক্সচেঞ্জ ইন্টারফেসে এই তথ্য না থাকলে পজিশন দ্বারা দখলকৃত মার্জিন, 0 দিয়ে পূরণ করা হবে। মার্জিন সংখ্যা

exchange.GetPositions() ফাংশন একটি অবস্থান অ্যারে বা একটি খালি অ্যারে ফেরত দেয়। ক্রিপ্টোকারেন্সি ফিউচারগুলির জন্য, এটি লক্ষ করা গুরুত্বপূর্ণ যে এক্সচেঞ্জ দ্বারা ফিরে আসা অবস্থান কাঠামো অ্যারে।GetPositions() ফাংশন। অবস্থান ডেটা কাঠামোর মধ্যে FrozenAmount, মুনাফা এবং মার্জিন বৈশিষ্ট্যগুলির জন্য, এক্সচেঞ্জ দ্বারা সরবরাহিত ডেটা অভিন্ন নয়, GetPositions() ইন্টারফেস, এক্সচেঞ্জ অবজেক্ট দ্বারা ফিরে আসা ডেটার সংজ্ঞা আলাদা হতে পারে। উদাহরণস্বরূপ, কিছু এক্সচেঞ্জের অবস্থান ডেটাতে কোনও অবস্থান হিমায়িত ডেটা নেই, তাই FrozenAmount হল 0। যদি আপনার নির্দিষ্ট ডেটা গণনা করতে হয় তবে আপনি গণনা এবং বিশ্লেষণের জন্য ইনফো বৈশিষ্ট্যটিতে মূল ডেটা ব্যবহার করতে পারেন।

{@fun/Futures/exchange.GetPositions exchange.GetPositions} {@fun/Futures/exchange.GetPositions exchange.GetPositions} {@fun/Futures/exchange.GetPositions exchange.GetPositions} {@fun/Futures/exchange.GetPositions exchange.GetPositions} {@futures/exchange.GetPositions exchange.GetPositions} {@futures/exchange.GetPositions exchange.GetPositions} {@futures/exchange.GetPositions exchange.GetPositions}

বাজার

বাণিজ্যিক জাতের বাজার তথ্যের কাঠামো।

যেমন মান গ্রহণ করা"btcusdt",Symbolএই ক্ষেত্রটি এক্সচেঞ্জে ট্রেড করা জাতের মূল নাম রেকর্ড করে।Symbol{@struct/Ticker Ticker} কাঠামোর ক্ষেত্র। প্রতীক স্ট্রিং যেমন মান গ্রহণ করা"BTC",BaseAssetক্ষেত্রটি ট্রেড করা মুদ্রার নাম (যেমনঃ বেস মুদ্রা) রেকর্ড করে, যা অভিন্নভাবে বড় হাতের অক্ষরে লেখা হয়। বেসঅ্যাসেট স্ট্রিং যেমন মান গ্রহণ করা"USDT",QuoteAssetক্ষেত্রটি নামযুক্ত মুদ্রার নাম (যেমনঃ quoteCurrency) রেকর্ড করে, যা অভিন্নভাবে বড় হাতের অক্ষরে লেখা হয়। কোটেশনঅ্যাসিট স্ট্রিং যেমন মান গ্রহণ করা0.01,TickSizeএই ক্ষেত্রটি এক্সচেঞ্জে ট্রেড করা আইটেমের দামের ক্ষুদ্রতম পরিবর্তনের মান রেকর্ড করে। টিক সাইজ সংখ্যা যেমন মান গ্রহণ করা0.01,AmountSizeএই ক্ষেত্রটি সেই ট্রেডের জন্য এক্সচেঞ্জে স্থাপন করা অর্ডারের পরিমাণের সর্বনিম্ন পরিবর্তনের মান রেকর্ড করে। পরিমাণSize সংখ্যা যেমন মান গ্রহণ করা2,PricePrecisionএই ক্ষেত্রটি এক্সচেঞ্জে ট্রেড করা আইটেমের দামের নির্ভুলতা রেকর্ড করে, যা নির্দেশ করে যে দামটি 2 দশমিকের মধ্যে সঠিক। মূল্যনির্ধারণ সংখ্যা যেমন মান গ্রহণ করা3,AmountPrecisionএই ক্ষেত্রটি ট্রেড করা জাতের জন্য এক্সচেঞ্জে দেওয়া অর্ডারের নির্ভুলতা রেকর্ড করে, যা নির্দেশ করে যে অর্ডারগুলি 3 দশমিক স্থান পর্যন্ত সঠিক। পরিমাণনির্ভুলতা সংখ্যা যেমন মান গ্রহণ করা0.001,MinQtyক্ষেত্রটি সেই ট্রেডের জন্য এক্সচেঞ্জে সর্বনিম্ন অর্ডার আকার রেকর্ড করে। মিনিট সংখ্যা যেমন মান গ্রহণ করা1000,MaxQtyএই ক্ষেত্রটি ট্রেডিংয়ের জন্য এক্সচেঞ্জে স্থাপন করা যেতে পারে এমন সর্বাধিক সংখ্যক অর্ডার রেকর্ড করে। সর্বাধিক সংখ্যা যেমন মান গ্রহণ করা5,MinNotionalএই ক্ষেত্রটি ট্রেডিংয়ের জন্য এক্সচেঞ্জে স্থাপন করা অর্ডারের ন্যূনতম পরিমাণ রেকর্ড করে। নূন্যতম সংখ্যা যেমন মান গ্রহণ করা9999999,MaxNotionalএই ক্ষেত্রটি এই ধরণের ট্রেডের জন্য এক্সচেঞ্জে অর্ডার দেওয়া সর্বোচ্চ পরিমাণ রেকর্ড করে। MaxNotional সংখ্যা মাঠCtValএক্সচেঞ্জে ট্রেডিং প্রোডাক্টের একটি চুক্তির মূল্য রেকর্ড করে,CtValCcyউদাহরণস্বরূপঃCtValহল ০.০১,CtValCcyহয়"BTC", যার মানে একটি চুক্তির মূল্য ০.০১ BTC। CtVal সংখ্যা মাঠCtValCcyএকটি চুক্তির মূল্য একক রেকর্ড করে। একটি চুক্তির মূল্য একক হতে পারেঃBTC, USD, ETHইত্যাদি। CtValCcy সংখ্যা মাঠInfoএক্সচেঞ্জের মার্কেট ইনফরমেশন ইন্টারফেসের মাধ্যমে ফিরে আসা প্রজাতির জন্য কাঁচা তথ্য রেকর্ড করে। তথ্য বস্তু

exchange.GetMarkets() ফাংশন একটি অভিধান প্রদান করে যা এইMarketকাঠামো প্রতিটি এক্সচেঞ্জ দ্বারা বাজার তথ্য তথ্যের জন্য সমর্থন বিভিন্ন স্তরের কারণে, ক্ষেত্র যে এক্সচেঞ্জ দ্বারা সমর্থিত হয় না উপেক্ষা করা হবে. উপরে ক্ষেত্রের মান এক্সচেঞ্জ ইন্টারফেসের কাঁচা তথ্য থেকে নেওয়া হয়, আপনি এছাড়াও বিষয়বস্তু চেক করতে পারেনInfo field.

{@fun/Market/exchange.GetMarkets বিনিময়.GetMarkets}

অর্থায়ন

ট্রেডিং প্রোডাক্টের ফান্ডিং রেট তথ্যের কাঠামো। শুধুমাত্র ক্রিপ্টোকারেন্সি চিরস্থায়ী চুক্তিগুলি ফান্ডিং রেট সমর্থন করে।

ক্রিপ্টোকারেন্সি ফিউচার এক্সচেঞ্জ ফান্ডিং রেট ইন্টারফেসটি কল করার সময় কাঁচা তথ্য ফিরে আসে। তথ্য বস্তু দ্যSymbolক্ষেত্রটি হল FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং প্রোডাক্ট কোড। প্রতীক স্ট্রিং তহবিলের হার, মিলিসেকেন্ডে।28800000মানে ৮ ঘণ্টার ব্যবধান। অন্তরাল সংখ্যা পরবর্তী তহবিলের হারের সময়সূচির সময় (এই সময়ের নিষ্পত্তির সময়), মিলিসেকেন্ডে। সময় সংখ্যা এই সময়ের জন্য যে অর্থায়ন হার ব্যবহার করা হবে। হার সংখ্যা

বিভিন্ন ফিউচার এক্সচেঞ্জের চিরস্থায়ী চুক্তি তহবিলের হারগুলির বিভিন্ন গণনার পদ্ধতি এবং প্রক্রিয়া রয়েছে এবং নিষ্পত্তি চক্রগুলি 1 ঘন্টা, 4 ঘন্টা, 8 ঘন্টা এবং এক দিন। ফিউচার এক্সচেঞ্জে স্থায়ী চুক্তির বর্তমান তহবিলের হারের একটি নির্দিষ্ট মূল্য এবং রিয়েল-টাইমে গণনা করা একটি ফ্লোটিং মূল্য রয়েছে। দ্যRateক্ষেত্রটি অর্থায়ন হার মান ছাড়া%. আপনি যদি এটিকে একটি মান রূপান্তর করতে চান%, আপনি এটা 100 দ্বারা গুণ করতে পারেন এবং যোগ করুন%শেষের দিকে।

{@fun/Futures/exchange.GetFundings বিনিময়.GetFundings} {@fun/Futures/exchange.GetFundings বিনিময়.GetFundings}

অন্যান্য কাঠামো

HttpQuery-options

এই JSON কাঠামোটি HttpQuery ফাংশন এবং HttpQuery_Go ফাংশনের পরামিতিগুলি কনফিগার করতে ব্যবহৃত হয় Http অনুরোধ পাঠাতে।

অনুরোধ পদ্ধতি, উদাহরণস্বরূপঃGET, POSTইত্যাদি। পদ্ধতি স্ট্রিং অনুরোধের দেহ। উদাহরণস্বরূপ, একটি POST অনুরোধে, দেহটিতে ফর্ম ডেটা, JSON, পাঠ্য ইত্যাদি থাকতে পারে। শরীর স্ট্রিং অক্ষর সেট এনকোডিং। উদাহরণস্বরূপ, শরীরের পাঠ্য ডেটার এনকোডিং নির্দিষ্ট করুনঃ"UTF-8". চার্সেট স্ট্রিং একটি কুকি হল একটি ক্লায়েন্ট (সাধারণত একটি ব্রাউজার) এবং একটি সার্ভারের মধ্যে স্টোর এবং বিনিময় তথ্যের জন্য ব্যবহৃত একটি ছোট তথ্য। বিস্কুট স্ট্রিং ব্রাউজারের আঙুলের ছাপ সিমুলেট করতে ব্যবহৃত হয়। প্রোফাইল স্ট্রিং যখন true এ সেট করা হয়, তখন HttpQuery ফাংশন কল সম্পূর্ণ প্রতিক্রিয়া বার্তা ফেরত দেয়। যখন false এ সেট করা হয়, তখন শুধুমাত্র প্রতিক্রিয়া বার্তার দেহে ডেটা ফেরত দেওয়া হয়। ডিবাগ বুল অনুরোধ শিরোনামের তথ্য কী-মানের জোড়া (জেএসওএন কাঠামো) আকারে বিদ্যমান এবং বিভিন্ন তথ্য যেমন সামগ্রী প্রকার, প্রমাণীকরণ তথ্য, ক্যাশ নিয়ন্ত্রণ ইত্যাদি প্রেরণে ব্যবহৃত হয়। শিরোনাম JSON টাইমআউট সেটিং. 1000 সেটিং মানে 1 সেকেন্ডের টাইমআউট. টাইমআউট সংখ্যা

ব্যবহারের উদাহরণঃ

function main() {
    var options = {
        method: "POST",
        body: "a=10&b=20&c=30",
        charset: "UTF-8",
        cookie: "session_id=12345; lang=en",
        profile: "chrome_103",
        debug: false,
        headers: {"TEST-HTTP-QUERY": "123"},
        timeout: 1000
    }
    var ret = HttpQuery("http://127.0.0.1:8080", options)
    Log(ret)
}

উপরের কোডটি চালানোর সময় HTTP বার্তা পাঠানো হয়ঃ

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br

e
a=10&b=20&c=30
0

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

HttpQuery-return

এই JSON কাঠামো ডিবাগ মোডে HttpQuery ফাংশন দ্বারা ফেরত তথ্য কাঠামো যখন ডিবাগ ক্ষেত্রoptionsকাঠামো পরামিতি সত্য।

HTTP স্ট্যাটাস কোড স্ট্যাটাস কোড সংখ্যা হেডারের তথ্য চাই। শিরোনাম JSON কুকিজ তথ্য। কুকিজ অ্যারে অনুরোধের সম্পূর্ণ পথের তথ্য। ট্রেস JSON বার্তার দৈর্ঘ্য দৈর্ঘ্য সংখ্যা বার্তার বিষয়বস্তু। দেহ স্ট্রিং

ফিরে আসা JSON ডাটা স্ট্রাকচারের একটি উদাহরণ হলঃ

{
    "StatusCode": 302,
    "Header": {
        "Content-Type": ["text/html"],
        // ...
    },
    "Cookies": [{
        // ...
    }],
    "Trace": {},
    "Length": 154,
    "Body": "..."
}

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

লগস্টাটাস-টেবিল

এই JSON কাঠামোটি কৌশল অবস্থা বারে প্রদর্শিত টেবিলের সামগ্রী কনফিগার করতে ব্যবহৃত হয়।

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

function main() {
    var tbl = {
        type: "table", 
        title: "title", 
        cols: ["Column 1", "Column 2", "Column 3"], 
        rows: [
            ["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
            ["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
            ["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
        ]
    }
    LogStatus("`" + JSON.stringify(tbl) + "`")
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeOne

এই JSON কাঠামোটি স্থিতি বারে বোতাম নিয়ন্ত্রণটি কনফিগার করতে ব্যবহৃত হয়। বোতাম নিয়ন্ত্রণ JSON কাঠামোটি স্থিতি বার টেবিল JSON কাঠামোতে এম্বেড করা যেতে পারে। এই কাঠামোটি একটি পুরানো সংস্করণ কাঠামো, এবং প্ল্যাটফর্মটি এখনও সামঞ্জস্যপূর্ণ। বোতাম JSON কাঠামোর সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দেওয়া হয়। একটি স্ট্যাটাস বার বোতাম কন্ট্রোল নির্মাণের উদাহরণ (বোতামটি ট্রিগার এবং ক্লিক করার পরে, পপ-আপ বক্সে একটি একক ইনপুট কন্ট্রোল রয়েছে, যা ইনপুট ক্ষেত্রের মাধ্যমে নির্মিত হয়):

{
    "type": "button", 
    "cmd": "open", 
    "name": "opening a position", 
    "input": {
        "name": "number of opening positions", 
        "type": "number", 
        "defValue": 1
    }
}

পপ-আপ বক্সের কন্ট্রোলগুলি স্ট্যাটাস বার বোতামে ক্লিক করে ট্রিগার করা হয়inputঅথবাgroup.

বোতাম নিয়ন্ত্রণের জন্য, স্থায়ী সেটিং হলঃbutton. প্রকার স্ট্রিং বাটন টাইপ সেটিংস ক্লাস স্ট্রিং বোতাম নিয়ন্ত্রণে লেখা, অর্থাৎ বোতামের নাম। নাম স্ট্রিং যখন বোতাম নিয়ন্ত্রণ একটি ক্লিক অপারেশন ট্রিগার করে তখন কৌশলটিতে পাঠানো ইন্টারেক্টিভ কমান্ড সামগ্রী। সিএমডি স্ট্রিং বোতাম নিয়ন্ত্রণের বর্ণনা। বর্ণনাটি প্রদর্শিত হয় যখন মাউসটি স্থিতি বারের বোতামে স্থাপন করা হয়। বর্ণনা স্ট্রিং বোতামটি নিষ্ক্রিয় (সত্য) / সক্ষম (মিথ্যা) এ সেট করুন। অক্ষম বুল ইন্টারঅ্যাকশনের জন্য একটি স্ট্যাটাস বার বোতাম তৈরি করার সময়, ডেটা ইনপুটও সমর্থিত। ইন্টারঅ্যাকশন কমান্ডটি শেষ পর্যন্তGetCommand()যোগ করুনinputস্ট্যাটাস বারে বোতাম নিয়ন্ত্রণের JSON ডেটা কাঠামোর জন্য পপ-আপ বক্সে ইনপুট কন্ট্রোল কনফিগার করতে বোতামটি ট্রিগার করা হলে প্রদর্শিত হয়। উদাহরণস্বরূপ, এর মান নির্ধারণ করতেinputক্ষেত্রঃ

{
    "name": "Number of opening positions", 
    "type": "number", 
    "defValue": 1,
    "description": "test",                  
}

উপরের JSON কাঠামোর প্রতিটি ক্ষেত্রের বর্ণনাঃ

  • নাম পপ-আপ বক্সে কন্ট্রোলের শিরোনাম যা স্ট্যাটাস বার বোতামের পরে পপ আপ হয় একটি ক্লিক অপারেশন ট্রিগার করে।
  • বর্ণনা স্ট্যাটাস বার বোতামটি ক্লিক অপারেশন ট্রিগার করার পরে পপ-আপ বক্সে কন্ট্রোলের বর্ণনা।
  • প্রকার স্ট্যাটাস বার বোতামের পরে পপ-আপ বাক্সে কন্ট্রোলের ধরনটি ক্লিক অপারেশনটি ট্রিগার করে। টাইপ ক্ষেত্রের সম্ভাব্য মানগুলি নিম্নরূপঃ
    1. "number": সংখ্যাসূচক ইনপুট কন্ট্রোল।
    2. "string": স্ট্রিং ইনপুট কন্ট্রোল।
    3. "selected": ড্রপ-ডাউন বক্স কন্ট্রোল.
    4. "boolean": সুইচ কন্ট্রোল.
  • defValue স্ট্যাটাস বার বোতামটি ক্লিক অপারেশন ট্রিগার করার পরে পপ-আপ বক্সে কন্ট্রোলের ডিফল্ট মান। যদি এটি একটি ড্রপ-ডাউন বক্স টাইপ কন্ট্রোল (নির্বাচিত) হয়, তবে ডিফভ্যালু ক্ষেত্রটি ড্রপ-ডাউন বক্স বিকল্পগুলি সেট করতে ব্যবহৃত হয়। উদাহরণস্বরূপঃ"input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}, ড্রপ-ডাউন বক্স বিকল্পগুলির পাঠ্য বিবরণ A, B, C এ সেট করা আছে।

ড্রপ-ডাউন বক্স টাইপ কন্ট্রোল দ্বারা প্রসারিত ক্ষেত্রগুলির জন্যঃ

  • বিকল্প স্ট্যাটাস বার বোতাম নিয়ন্ত্রণ দ্বারা ট্রিগার করা পৃষ্ঠার ড্রপ-ডাউন বক্স নিয়ন্ত্রণ বিকল্প সেট করতে বিকল্প ক্ষেত্র ব্যবহার করতে পারেন। বিকল্প ক্ষেত্রের বিকল্পগুলি কেবল স্ট্রিং সমর্থন করে না, তবে এর ব্যবহারও সমর্থন করে{text: "description", value: "value"}ডিফল্ট অপশন সেট করতে defValue ক্ষেত্রটি ব্যবহার করুন, যা একাধিক নির্বাচন হতে পারে।
  • একাধিক যখন এই ক্ষেত্রটি true এ সেট করা থাকে, তখন ড্রপ-ডাউন বাক্সে একাধিক নির্বাচন সমর্থিত হয়।

ইনপুট JSON দ্যinputক্ষেত্রটি পপ-আপ বক্সে একটি কন্ট্রোল কনফিগার করে যা স্ট্যাটাস বার বোতামটি ক্লিক করে ট্রিগার হওয়ার পরে পপ আপ হয়।groupএবংinputএটি নিয়ন্ত্রণের একটি গ্রুপ কনফিগার করে।groupএকই তথ্য কাঠামো আছেinputক্ষেত্রের মান। অনুগ্রহ করে ক্ষেত্রের প্রাসঙ্গিক বিবরণ দেখুনinput field.

গ্রুপ অ্যারে

উদাহরণস্বরূপclassস্ট্যাটাস বারের একটি বোতামের JSON কাঠামোর মানঃ

function main() {
    var table = {
        type: "table",
        title: "Status bar button style",
        cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"], 
        rows: [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
            ]
        ]
    }
    LogStatus("`" + JSON.stringify(table) + "`")
}

ব্যবহারের উদাহরণgroupসঙ্গে ক্ষেত্রinputক্ষেত্রঃ

function main() {
    // The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
    var testBtn1 = {
        type: "button",
        name: "testBtn1",
        cmd: "cmdTestBtn1",
        input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
    }
  
    /* 
      Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
      it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
    */
    var testBtn2 = {
        type: "button", 
        name: "testBtn2",
        cmd: "cmdTestBtn2",
        input: {
            name: "testBtn2MultiComboBox", 
            type: "selected", 
            description: "Implementing multiple selection in drop-down box", 
            options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
            defValue: ["A", "C"],
            multiple: true
        }
    }
  
    // Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    while (true) {
        LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(5000)
    }
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeTwo

এই JSON কাঠামোটি স্থিতি বারে বোতাম নিয়ন্ত্রণ কনফিগার করতে ব্যবহৃত হয়। বোতাম নিয়ন্ত্রণ JSON কাঠামো স্থিতি বার টেবিল JSON কাঠামোতে এম্বেড করা যেতে পারে। বোতাম JSON কাঠামোর সর্বশেষ সংস্করণ। একটি স্ট্যাটাস বার বোতাম কন্ট্রোল তৈরির উদাহরণ (বোতামটি ট্রিগার এবং ক্লিক করার পরে, পপ-আপ বক্সে একাধিক ইনপুট কন্ট্রোল রয়েছে, যা গ্রুপ ক্ষেত্রের মাধ্যমে নির্মিত হয়):

{
    "type": "button",
    "cmd": "open",
    "name": "Open a position and place an order",
    "group": [{
        "type": "selected",
        "name": "tradeType",
        "label": "order type",
        "description": "market order, limit order",
        "default": 0,
        "group": "trading setup",
        "settings": {
            "options": ["market order", "limit order"],
            "required": true,
        }
    }, {
        "type": "selected",
        "name": "direction",
        "label": "trading direction",
        "description": "buy, sell",
        "default": "buy",
        "group": "trading setup",
        "settings": {
            "render": "segment",
            "required": true,
            "options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
        }
    }, {
        "type": "number",
        "name": "price",
        "label": "price",
        "description": "order price",
        "group": "trading setup",
        "filter": "tradeType==1",
        "settings": {
            "required": true,
        }
    }, {
        "type": "number",
        "name": "amount",
        "label": "order quantity",
        "description": "order quantity",
        "group": "trading setup",
        "settings": {
            "required": true,
        }
    }],
}

পপ-আপ বক্সের কন্ট্রোলগুলি স্ট্যাটাস বার বোতামে ক্লিক করে ট্রিগার করা হয়inputঅথবাgroup.

বোতাম নিয়ন্ত্রণের জন্য, স্থায়ী সেটিং হলঃbutton. প্রকার স্ট্রিং বোতাম নিয়ন্ত্রণে লেখা, অর্থাৎ বোতামের নাম। নাম স্ট্রিং যখন বোতাম নিয়ন্ত্রণ একটি ক্লিক অপারেশন ট্রিগার করে তখন কৌশলটিতে পাঠানো ইন্টারেক্টিভ কমান্ড সামগ্রী। সিএমডি স্ট্রিং ইন্টারঅ্যাকশনের জন্য একটি স্ট্যাটাস বার বোতাম তৈরি করার সময়, ডেটা ইনপুটও সমর্থিত। ইন্টারঅ্যাকশন কমান্ডটি শেষ পর্যন্তGetCommand()যোগ করুনinputস্ট্যাটাস বারে বোতাম নিয়ন্ত্রণের JSON ডেটা কাঠামোর জন্য পপ-আপ বক্সে ইনপুট কন্ট্রোল কনফিগার করতে বোতামটি ট্রিগার করা হলে প্রদর্শিত হয়। ইনপুট স্ট্রাকচারের পুরানো সংস্করণের তুলনায়, নতুন সংস্করণে কিছু নতুন ক্ষেত্র এবং পরিবর্তন রয়েছেঃ

{
    "type": "selected",
    "name": "test",         
    "label": "topic",       
    "description": "desc",  
    "default": 1,
    "filter": "a>1",
    "group": "group1",
    "settings": { ... },    // Component configuration
}

উপরের JSON স্ট্রাকচারে প্রতিটি ক্ষেত্রের বর্ণনা এবং ব্যাখ্যাঃ

  • প্রকার কন্ট্রোল টাইপ (প্রয়োজনীয় ক্ষেত্র), নিম্নলিখিত সেটিংস সমর্থন করেঃ"number"সংখ্যাগত ইনপুট বক্স,"string"স্ট্রিং ইনপুট বক্স,"selected"ড্রপ ডাউন বক্স,"boolean"কন্ট্রোল স্যুইচ করুন।

  • নাম যদি বর্তমান JSON কাঠামো ইনপুট ক্ষেত্রের ক্ষেত্র মান হয়, যখন লেবেল ক্ষেত্র সেট করা হয় না, নাম পপ-আপ বক্সে কন্ট্রোল শিরোনাম যা স্ট্যাটাস বার বোতামটি ক্লিক করার পরে পপ আপ হয়। যদি বর্তমান JSON কাঠামোটি গ্রুপ ক্ষেত্রের ক্ষেত্রের মান (অ্যারে কাঠামো) এর একটি উপাদান হয়, তবে নামটি নিয়ন্ত্রণ শিরোনাম হিসাবে ব্যবহার করা হয় না। নাম ক্ষেত্রটি নিয়ন্ত্রণ ইনপুট সামগ্রীর ক্ষেত্রের নাম নির্দেশ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, গ্রুপ ক্ষেত্রের একটি অংশ একটি চিত্র হিসাবে ব্যবহৃত হয়ঃ

    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    

    এই স্নিপেট অনুসারে, যদি স্ট্যাটাস বার বোতামটি একটি মিথস্ক্রিয়া ট্রিগার করে, তবে একটি পপ-আপ বক্স 4 টি কন্ট্রোল সহ পপ আপ হবে, যা সবই ড্রপ-ডাউন বক্স কন্ট্রোল। প্রতিটি কন্ট্রোলের জন্য বিকল্পগুলি সেট করার পরে এবং মিথস্ক্রিয়া বার্তা প্রেরণের জন্য ঠিক আছে ক্লিক করার পরে, কৌশলটিতে GetCommand ফাংশনটি পাবেনcmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}. JSON কাঠামোর নামের মানটি ফেরত ইন্টারেক্টিভ তথ্যের ক্ষেত্রের নাম হিসাবে ব্যবহৃত হয়, উদাহরণস্বরূপঃ comboBox1, comboBox2, ইত্যাদি।

  • লেবেল কন্ট্রোলের শিরোনাম সেট করতে ব্যবহৃত হয়।

  • বর্ণনা কন্ট্রোলের বর্ণনা। যদি বর্তমান JSON কাঠামোটি গ্রুপ ক্ষেত্রের ক্ষেত্রের মান (অ্যারে কাঠামো) এর একটি উপাদান হয়, এবং লেবেল ক্ষেত্রটি সেট করা না থাকে, তাহলে বর্ণনা হল পপ-আপ বক্সে কন্ট্রোল শিরোনাম যা স্ট্যাটাস বার বোতামটি ক্লিক করার পরে পপ আপ হয়।

  • ডিফল্ট নিয়ন্ত্রণের ডিফল্ট মান।

  • ফিল্টার নির্বাচক, কন্ট্রোলগুলি লুকানোর জন্য ব্যবহৃত হয়। এই ক্ষেত্রটি সেট না করার অর্থ ফিল্টারিং (কন্ট্রোলগুলি প্রদর্শন করা); যখন এই ক্ষেত্রটি সেট করা হয়, যখন এক্সপ্রেশনটি সত্য হয় তখন কোনও ফিল্টারিং (কন্ট্রোলগুলি প্রদর্শন করা) ঘটে না। যখন এক্সপ্রেশনটি মিথ্যা হয়, তখন ফিল্টারিং ঘটে (কন্ট্রোলগুলি প্রদর্শন করা হয় না)

  • গ্রুপ কন্ট্রোলের গ্রুপিং নিয়ন্ত্রণ করতে ব্যবহৃত হয়, যা ভাঁজ করা যায়।

  • সেটিংস উপাদান কনফিগারেশন, কন্ট্রোল বিভিন্ন ইউআই অপশন আছে, নির্দিষ্ট সেটিংস করতে এই বিকল্পটি ব্যবহার করুন। উদাহরণস্বরূপঃ

    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
    

    সেটিংসঃ settings.required: এটি প্রয়োজনীয় কিনা। settings.disabled: নিষ্ক্রিয় করা হবে কি না। settings.min: type=number হলে বৈধ, একটি স্ট্রিংয়ের সর্বনিম্ন মান বা সর্বনিম্ন দৈর্ঘ্য নির্দেশ করে। settings.max: type=number হলে বৈধ, সর্বাধিক মান বা সর্বাধিক দৈর্ঘ্য নির্দেশ করে। settings.step: type=number এবং render=slider এ বৈধ, ধাপের দৈর্ঘ্য নির্দেশ করে। settings.multiple: type=selected হলে বৈধ, একাধিক নির্বাচন সমর্থিত। settings.customizable: type= নির্বাচিত হলে এটি বৈধ, যা নির্দেশ করে যে কাস্টমাইজেশন সমর্থিত; ব্যবহারকারীরা সরাসরি ড্রপ-ডাউন বক্স নিয়ন্ত্রণে নতুন বিকল্পগুলি সম্পাদনা এবং যুক্ত করতে পারেন। যদি নতুন সম্পাদিত বিকল্পটি নির্বাচিত হয়, তবে ইন্টারঅ্যাকশনটি ট্রিগার করা হলে বিকল্প দ্বারা প্রতিনিধিত্বকৃত মানের পরিবর্তে বিকল্পের নাম ব্যবহার করা হয়। settings.options: type=selected হলে বৈধ, নির্বাচক বিকল্প তথ্য বিন্যাস নির্দেশ করেঃ [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}। settings.render: রেন্ডারিং কম্পোনেন্টের ধরন। যখন type=number, settings.render সেট করা নেই (ডিফল্ট নম্বর ইনপুট বক্স), ঐচ্ছিকঃ স্লাইডার (স্লাইডার বার), তারিখ (সময় নির্বাচক টাইমস্ট্যাম্প ফেরত দেয়) । যখন type=string, settings.render সেট করা না থাকে (ডিফল্ট এক-লাইন ইনপুট বক্স), ঐচ্ছিকঃ textarea (multi-line input), date (time selector returns yyyy-MM-dd hh:mm:ss), color (color selector returns #FF00FF). যখন type= নির্বাচন করা হয়, তখন settings.render সেট করা হয় না (ডিফল্ট ড্রপ-ডাউন বক্স), ঐচ্ছিকঃ সেগমেন্ট (সেগমেন্ট নির্বাচক) । যখন type=boolean, বর্তমানে শুধুমাত্র একটি ডিফল্ট চেকবক্স আছে।

ইনপুট JSON দ্যinputক্ষেত্রটি পপ-আপ বক্সে একটি কন্ট্রোল কনফিগার করে যা স্ট্যাটাস বার বোতামটি ক্লিক করে ট্রিগার হওয়ার পরে পপ আপ হয়।groupএবংinputএটি নিয়ন্ত্রণের একটি গ্রুপ কনফিগার করে।groupএকই তথ্য কাঠামো আছেinputক্ষেত্র মান. দয়া করে উপরে বর্ণনা পড়ুনinput field.

গ্রুপ অ্যারে

দ্বিভাষিক সেটিংস সমর্থন করুনঃ

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}

{@fun/Log/LogStatus LogStatus}

চার্ট অপশন

এই JSON কাস্টম অঙ্কন ফাংশনের চার্ট কনফিগারেশন তথ্য সেট করতে ব্যবহৃত হয়Chart(). ব্যবহৃত চার্ট লাইব্রেরি হল হাইচার্টস। এখানে শুধুমাত্র কয়েকটি মৌলিক কনফিগারেশন ক্ষেত্র তালিকাভুক্ত করা হয়েছে।

প্ল্যাটফর্ম এক্সটেনশন ক্ষেত্র। হাইস্টক চার্ট ব্যবহার করতে সত্য সেট করুন; হাইচার্ট চার্ট ব্যবহার করতে মিথ্যা সেট করুন।

__isস্টক স্ট্রিং

{
    layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
    height: 300,      // Specify height
}

সম্প্রসারণ JSON চার্ট শিরোনাম নাম স্ট্রিং এক্স-অক্ষ কনফিগারেশন। xঅক্ষ JSON Y-অক্ষ কনফিগারেশন। yঅক্ষ JSON চার্ট ডেটা সিরিজ। সিরিজ JSON

একটি সহজ অঙ্কন উদাহরণঃ

// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {                                           
    // This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
    __isStock: true,                                    
    // Zoom tool
    tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    
    // title
    title : { text : 'Price difference analysis chart'},                       
    // Select range
    rangeSelector: {                                    
        buttons:  [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
        selected: 0,
        inputEnabled: false
    },
    // The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
    xAxis: { type: 'datetime'},                         
    // The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
    yAxis : {                                           
        // title
        title: {text: 'Price difference'},                           
        // Whether to enable the right vertical axis
        opposite: false                                 
    },
    // Data series, this property saves each data series (line, K-line chart, label, etc.)
    series : [                                          
        // The index is 0, and the data array stores the data of the index series.
        {name : "line1", id : "line 1,buy1Price", data : []},                          
        // The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
        {name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}  
    ]
}
function main(){
    // Call the Chart function to initialize the chart
    var ObjChart = Chart(chart)         
    // Clear
    ObjChart.reset()                      
    while(true){
        // Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
        var nowTime = new Date().getTime()
        // Get market data
        var ticker = _C(exchange.GetTicker)
        // Get the buy price from the return value of the market data
        var buy1Price = ticker.Buy    
        // Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
        var lastPrice = ticker.Last + 1
        // Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
        ObjChart.add(0, [nowTime, buy1Price])
        // Same as above
        ObjChart.add(1, [nowTime, lastPrice])
        Sleep(2000)
    }
}

{@fun/Log/Chart Chart} {@fun/Log/Chart Chart} {@fun/Log/Chart Chart}

KLineChart-বিকল্প

এই JSON কাস্টম অঙ্কন ফাংশনের চার্ট কনফিগারেশন তথ্য সেট করতে ব্যবহৃত হয়KLineChart. এখানে কেবলমাত্র কয়েকটি মৌলিক কনফিগারেশন ক্ষেত্র তালিকাভুক্ত করা হয়েছে।

প্রধান চার্টে আঁকতে হবে কিনা। আচ্ছাদন বুল এক্স-অক্ষ কনফিগারেশন। xঅক্ষ JSON Y-অক্ষ কনফিগারেশন। yঅক্ষ JSON ক্যান্ডেলস্টিক চার্ট কনফিগারেশন। মোমবাতি JSON

অনুগ্রহ করে দেখুনKLineChart ফাংশন ব্যবহার করে চার্ট অঙ্কন সম্পর্কিত বিশেষ নিবন্ধ.

{@fun/Log/KLineChart KLineChart}

সেটডাটা-ডেটা

JSON ব্যবহার করা হয় ডাটা লোড করার জন্য সেট করার জন্যexchange.SetData()JSON ডেটা একটি অ্যারে কাঠামো, যেখানে প্রতিটি উপাদান একটি অ্যারে, যথা[time, data].

তথ্যের টাইমস্ট্যাম্প, যা এই তথ্যের সময় চিহ্নিত করে। সময় সংখ্যা ডেটা একটি ডেটা টুকরা একটি নির্দিষ্ট সময় দ্বারা লোড করা ডেটা মধ্যে অনুরূপexchange.SetData()যখন কৌশল চালানো হয়,exchange.GetData()ফাংশন বর্তমান সময় অনুযায়ী সংশ্লিষ্ট টাইমস্ট্যাম্প দিয়ে তথ্য পায়।

তথ্য string, number, bool, object, array ইত্যাদি

ব্যাকটেস্টিং সিস্টেমে ডেটা লোড করার উদাহরণ এবং কৌশল ব্যাকটেস্ট চালানোর সময় ডেটা পুনরুদ্ধার করার উদাহরণঃ

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
    }
}

{@ফান সেটডাটা}, {@ফান গেটডাটা}

ইভেন্টলুপ-রিটার্ন

এই JSON হল ডাটা স্ট্রাকচারEventLoop()ফাংশন।EventLoop()ফাংশন মনিটরঃ 1. যেকোনো ওয়েবসকেট পাঠযোগ্য ডেটা ইভেন্ট; 2. এক্সচেঞ্জ.গো ((() এবং HttpQuery_Go (()) ফাংশনের সাথে সমান্তরালভাবে টাস্ক সমাপ্তির ইভেন্ট; 3. থ্রেডে পাঠানো বার্তা ইভেন্টগুলিthreading.Thread()জাভাস্ক্রিপ্ট ভাষার কৌশলতে ফাংশন।

ইভেন্ট সিকোয়েন্স নম্বর। ধারা সংখ্যা ইভেন্টের নাম। ঘটনা স্ট্রিং ইভেন্ট থ্রেড আইডি। থ্রেডড সংখ্যা ইভেন্ট ইনডেক্স। সূচক সংখ্যা ন্যানো টাইমস্ট্যাম্প। ন্যানো সংখ্যা

ব্যবহার করুনexchange.Go()একই সময়ে অনুরোধ করতে ফাংশন এবং ইভেন্ট ডেটা কাঠামো দ্বারা ফিরেEventLoop() function.

{
    "Seq":1,
    "Event":"Exchange_GetTrades",
    "ThreadId":0,
    "Index":3,
    "Nano":1682068771309583400
}

জাভাস্ক্রিপ্ট ভাষা কৌশল (সৃজনকারী দ্বারা তৈরি) এর সমান্তরালভাবে নির্বাহিত থ্রেডেthreading.Thread()ফাংশন), যখনpostMessage()থ্রেড অবজেক্টের ফাংশন একটি বার্তা পাঠাতে ব্যবহৃত হয়,EventLoop()বার্তা গ্রহণকারী থ্রেডের ফাংশনটি নিম্নলিখিত ইভেন্ট ডেটা কাঠামো পর্যবেক্ষণ করবেঃ

{
    "Seq":4,
    "Event":"thread",
    "ThreadId":1,
    "Index":0,
    "Nano":1727592066508674000
}

{@fun/Global/EventLoop ইভেন্টলুপ}

DBExec-return

এই JSON হল ডাটা স্ট্রাকচারDBExec()ফাংশন; এটি SQL স্ট্র্যাটেজ চালানোর সময়ও ফিরে আসেexec()পদ্ধতি দ্বারা তৈরি বস্তুরDial() function.

অনুসন্ধান করা তথ্যের কলামের নাম, একটি স্ট্রিং অ্যারে। কলাম অ্যারে নির্দিষ্ট তথ্য যা অনুসন্ধান করা হবে, যেখানে প্রতিটি ডেটা টুকরা একটি কলামের নামের সাথে মিলে যায়। মান ক্ষেত্রের মান একটি দ্বি-মাত্রিক অ্যারে, যেখানে প্রতিটি উপাদান একটি অ্যারে এবং একটি ডেটা রেকর্ড। মান অ্যারে

ডাটাবেসে তথ্য অনুসন্ধানের উদাহরণঃ

{
    "columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
    "values":[
        [1518970320000,100,99.1,90,100,12345.6],
        [1518960320000,100,99.1,90,100,12345.6]
    ]
}

{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial}

Thread.join-return

এই JSON হল সদস্য ফাংশন দ্বারা ফেরত দেওয়া ডাটা স্ট্রাকচারjoin()এরThreadবস্তুর, যা সমান্তরাল থ্রেড সম্পর্কে কিছু তথ্য সংরক্ষণJavaScriptভাষা কৌশলThreadবস্তু থ্রেড অবজেক্ট বোঝায়, যা দ্বারা তৈরি করা হয়threading.Thread().

থ্রেড আইডি। আইডি সংখ্যা থ্রেড শেষ হতে বাধ্য হয় কিনা। সমাপ্ত বুল ন্যানো সেকেন্ডে থ্রেডের চলমান সময়। শেষ হয়েছে সংখ্যা থ্রেড ফাংশনের রিটার্ন মান। রিট সংখ্যা

নিম্নলিখিত কোডটি টাইমআউট প্রক্রিয়াটি পরীক্ষা করেjoin()কার্যকারিতাThreadবস্তুর এবং মুদ্রণjoin() function.

function testFunc() {
    for (var i = 0; i < 5; i++) {
        Log(i)
        Sleep(300)
    }
}

function main() {
    var t1 = threading.Thread(testFunc)
    Log(t1.join(1000))  // undefined
    Log(t1.join())      // {"id":1,"terminated":false,"elapsed":1506864000}
} ```


{@fun/Threads/Thread/join join}
বিল্ট ইন ফাংশন অন্তর্নির্মিত পরিবর্তনশীল