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

ট্রেডিং কৌশল তৈরির জন্য ভিজ্যুয়ালাইজেশন মডিউল - উন্নত বোঝার

লেখক:এফএমজেড-লিডিয়া, তৈরিঃ ২০২২-১২-১৩ 14:11:36, আপডেটঃ ২০২৩-০৯-২০ ০৯ঃ৫৩ঃ৫৯

img

ট্রেডিং কৌশল তৈরির জন্য ভিজ্যুয়ালাইজেশন মডিউল - উন্নত বোঝার

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

ট্রেডিং বিভাগের মডিউল

পূর্ববর্তী লার্নিং এবং টেস্টিংয়ে, আমরা বেশ কয়েকটি ট্রেডিং বিভাগের মডিউলের সাথে পরিচিত হয়েছি। উদাহরণস্বরূপঃ এক্সচেঞ্জ Get Ticker মডিউল এক্সচেঞ্জ Get OHLC মডিউল ...

এগুলো এখানে পুনরাবৃত্তি করা হবে না।

১. এক্সচেঞ্জের সংখ্যা বের করুন

img

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

আমরা একটি সহজ কাঠামোর মধ্যে বর্তমানে কনফিগার করা এক্সচেঞ্জ সংখ্যা মুদ্রণ করতে পারেনঃ

img

আসলে, এটা এমন একটি জাভাস্ক্রিপ্ট কৌশল কোড কল করার মতঃ

function main () {
    Log(exchanges.length)
}

আসুন এই যৌথ মডিউলের চলমান ফলাফলগুলি একবার দেখে নেওয়া যাকঃ

img img img

আমরা দেখতে পাচ্ছি যে আমরা তিনটি এক্সচেঞ্জ অবজেক্ট যুক্ত করেছি, যা তিনটি ভিন্ন এক্সচেঞ্জ অ্যাকাউন্টের প্রতিনিধিত্ব করে, এবং ব্যাকটেস্ট লগের আউটপুট ফলাফল 3।

২. এক্সচেঞ্জের নাম জেনে নিন

img

যখন তিনটি এক্সচেঞ্জ অবজেক্ট যুক্ত করা হয়, তখন ড্রপ-ডাউন বক্স তিনটি বিকল্প প্রদর্শন করবে। লুপ টাইপের একটি লুপ মডিউল আগে থেকেই শিখুন।

img

একটি শর্ত বিচার মডিউল আগে থেকেই শিখুনঃ

img

বিচার শর্তাবলী নিম্নরূপ লেখা যেতে পারেঃ

img

আমরা লুপ মডিউল ব্যবহার করি যোগ করা এক্সচেঞ্জ নামগুলি অতিক্রম করতে। বর্তমান লুপের সংখ্যাটি মুদ্রণ করা এক্সচেঞ্জের নামের সাথে মিলেছে কিনা তা বিচার করতে আমরা শর্ত বিচার মডিউলটি ব্যবহার করি।

img

ব্যাকটেস্ট অপারেশনের ফলাফলঃ

img

যেমন জাভাস্ক্রিপ্ট কৌশল কোডঃ

function main () {
    for (var i = 1 ; i <= exchanges.length ; i++) {
        if (i == 1) {
            Log(exchanges[0].GetName())
        } else if (i == 2) {
            Log(exchanges[1].GetName())
        } else {
            Log(exchanges[2].GetName())
        }
    }
}

৩. এক্সচেঞ্জের বর্তমান ট্রেডিং জোড়া পান

img

একটি সহজ উদাহরণ হ'ল বর্তমানে সেট করা প্রথম এক্সচেঞ্জ অবজেক্টের ট্রেডিং জোড়া পাওয়া এবং এটি পাঠ্য পরিবর্তনশীলকে বরাদ্দ করা (পূর্বেই পরিবর্তনশীল বিভাগে তৈরি করা) ।

img

ব্যাকটেস্টিং এর ফলাফল:

img img img

আপনি যদি জাভাস্ক্রিপ্ট কৌশল কোড কল করেনঃ

function main () {
    var text = exchange.GetCurrency()
    Log(text)
}

৪. অর্ডার মডিউল

img

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

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

img

ব্যাকটেস্ট অপারেশনের ফলাফলঃ

img

যেমন নিচের জাভাস্ক্রিপ্ট কৌশল কোডঃ

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
    Log(id)
}

৫. বর্তমান ট্রেডিং জোড়া মডিউলের অপেক্ষমান অর্ডার পান

img

এই মডিউলটি বর্তমান ট্রেডিং জোড়ার অসম্পূর্ণ অবস্থায় থাকা সমস্ত অপেক্ষমান অর্ডার ফেরত দেবে। এটি একটি তালিকা কাঠামো (অ্যারে) ফেরত দেয়, যা তালিকা প্রকার মডিউল (ট্র্যাভার্সাল অপারেশন ইত্যাদি) দ্বারা প্রক্রিয়া করা যেতে পারে। উদাহরণস্বরূপ, আমরা উপরের উদাহরণ অর্ডার মডিউলটি [1] সামান্য সংশোধন করেছি, এবং অর্ডার দেওয়ার সময় যোগ করা 10 ইউয়ান মূল্যকে বিয়োগ 10 ইউয়ানে পরিবর্তন করেছি। অর্ডারটি অবিলম্বে বন্ধ হবে না, তবে এটি লেনদেনের গভীরতায় স্থাপন করা হবে (যেমন, এক কিনুন, দুটি কিনুন, এন-তে একটি নির্দিষ্ট স্তর কিনুন), এইভাবে, অর্ডারটি অপেক্ষমান অর্ডারগুলির অবস্থায় থাকবে। তারপর আমরা Get pending orders of the current trading pair এর মডিউলটি ব্যবহার করি PENDING স্ট্যাটাসে অর্ডারের তালিকা পেতে (পূর্ণ হওয়ার অপেক্ষায়) । পরবর্তী বাজারে অর্ডার পূরণ করার কারণে ব্যাকটেস্টের চূড়ান্ত পর্যবেক্ষণের উপর প্রভাব এড়ানোর জন্য, বর্তমান ট্রেডিং জোড়ার অপেক্ষমান অর্ডারগুলি পান মডিউলটি কার্যকর হওয়ার পরে, আমরা অর্ডার তালিকাটি মুদ্রণ করি এবং প্রোগ্রামটি বন্ধ করতে অবিলম্বে মডিউল থ্রো ব্যতিক্রম ব্যবহার করি।

img

ব্যাকটেস্টিং দেখায় যে:

img

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

সমগ্র একত্রিত মডিউল জাভাস্ক্রিপ্ট কৌশল একটি কল মতঃ

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
    Log(id)
    Log(exchange.GetOrders())
    throw "stop"
}

৬. অর্ডার মডিউল বাতিল করুন

img

এই মডিউলটি অর্ডার বাতিল করতে ব্যবহৃত হয়।

কৌশল লেখার সময় এমন অনেকগুলি দৃশ্যকল্প রয়েছে যা এই ধরনের ক্রিয়াকলাপের প্রয়োজনঃ

সমস্ত চলমান আদেশ বাতিল করুন।

সন্দেহ নেই যে অর্ডার বাতিল মডিউল ব্যবহার করা আবশ্যক। বাতিল আদেশ মডিউল শেখার সময়, আমরা বর্তমান ট্রেডিং জোড়া মডিউলের অপেক্ষমান আদেশ পেতে [5] ব্যবহার করতে পারি এবং এই ফাংশনটি অর্জন করতে একত্রিত করতে পারি।

প্রথমত, সব আদেশ বাতিল পরীক্ষা করার জন্য, এটি একটি আদেশ স্থাপন করা সুস্পষ্ট নয়। আমরা 2 আদেশ স্থাপন শুরু, তাদের দাম এবং পরিমাণ দুটি আদেশ পার্থক্য করতে ভিন্ন।

img

Loop মডিউলের list মডিউলে Traverse every element in the list ব্যবহার করে বর্তমান অপেক্ষমান অর্ডারের তালিকায় অর্ডারগুলি অতিক্রম করুন।

img

ট্রাভার্সালের সময়, প্রতিটি অর্ডার পুনরুদ্ধার করা হয় ভেরিয়েবল মডিউল অর্ডারে একটি মান বরাদ্দ করা হয় (ভেরিয়েবল মডিউল টাইপে তৈরি করা হয়, নীচে দেখানো হয়েছে:)

img

Util মডিউল ব্যবহার করুনঃ

img

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

ব্যাকটেস্ট অপারেশনঃ

img

জাভাস্ক্রিপ্ট কৌশল বর্ণনা ব্যবহার করুনঃ

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
    Log(id)
    var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
    Log(id2)
    var orders = exchange.GetOrders()
    Log(orders)
    for (var i in orders) {
        var order = orders[i]
        Log(exchange.CancelOrder(order.Id))
    }
}

7. অর্ডার আইডি এর উপর ভিত্তি করে একটি অর্ডারের বিবরণ পেতে মডিউল

img

মডিউলটির টেনন (কনকভ) অবস্থান একটি অর্ডার আইডি ভেরিয়েবল মডিউলের সাথে সংযুক্ত এবং অর্ডার বিবরণ ফেরত দেওয়া যেতে পারে।

img

চালানোর পর যে অর্ডারটি ফিরে এসেছে তা লক্ষ্য করুনঃ

img

উদাহরণে চলমান ফলাফলগুলির সাথে তুলনা করা হলে [5], এটি পাওয়া যায় যে মুদ্রিত অর্ডারটি বন্ধনী ছাড়াই একটি পৃথক অর্ডার তথ্য। কারণ উদাহরণ [5] একটি তালিকা ফেরত দেয়, কিন্তু এই উদাহরণ একটি পৃথক আদেশ তথ্য ফেরত দেয় (মডিউল দ্বারা পাস টেনন অবস্থান উপর আইডি পরিবর্তনশীল মডিউল উপর ভিত্তি করে প্রাপ্ত) ।

উপরের উদাহরণটি জাভাস্ক্রিপ্ট কৌশল কার্যকর করার অনুরূপঃ

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
    Log(exchange.GetOrder(id))
}

৮. ফিউচার ট্রেডিং মডিউল

আমরা উপরের মডিউলগুলো একের পর এক শিখব এবং আমরা টেস্ট এক্সচেঞ্জকে কমোডিটি ফিউচার হিসেবে সেট করব।

ব্যাকটেস্টিং সেটিংসঃ

img

নিম্নলিখিত উদাহরণটি সেটিংসের উপর ভিত্তি করে ব্যাকটেস্ট সম্পাদন করে।

  • সিটিপি কমোডিটি ফিউচার এবং ফিউচার কোম্পানির সার্ভারের মধ্যে সংযোগ অবস্থা মডিউল বিচার

img

কমোডিটি ফিউচারগুলির খোলার সময় এবং বন্ধের সময় থাকে। যখন বাজার বন্ধ থাকে, তখন এটি সংযুক্ত করা যায় না।

  • সেট চুক্তি মডিউল

img

যখন এক্সচেঞ্জের অবজেক্টটি ফিউচার এক্সচেঞ্জ হিসাবে কনফিগার করা হয়, যদি এক্সচেঞ্জটি একটি চুক্তি স্থাপন না করে এবং সরাসরি বাজার তথ্য পায়, তাহলে একটি ত্রুটি রিপোর্ট করা হবে।

আমরা চুক্তিটি MA909 হিসাবে নির্ধারণ করেছি, বর্তমানে মেথানলের প্রধান চুক্তি।

এইভাবে, MA909 চুক্তির বর্তমান টিক বাজারে সর্বশেষ মূল্য মূল্য পাওয়া যায়।

  • ফিউচার ট্রেডিংয়ের জন্য অর্ডার দিকনির্দেশ মডিউল সেট করুন

অর্ডার সম্পাদন মডিউলে

img

অর্ডারের দিকনির্দেশনা নির্দিষ্ট করতে হবে, কারণ ফিউচারগুলোতে আছেঃ ক্রয়ঃ খোলা লং পজিশন বিক্রয়ঃ খোলা শর্ট পজিশন closebuy: দীর্ঘ পজিশন বন্ধ করা close-sell: শর্ট পজিশন বন্ধ করা চারটি দিক (কোমোডিটি ফিউচারগুলির জন্য আরও দুটি দিক রয়েছেঃ আজ দীর্ঘ পজিশন বন্ধ করার জন্য closebuy_today এবং আজ শর্ট পজিশন বন্ধ করার জন্য closesell_today) ।

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

img

ব্যাকটেস্টিং ডিসপ্লেঃ

img

যেমন জাভাস্ক্রিপ্ট কৌশল কোডঃ

function main () {
    while (true) {
        if (exchange.IO("status")) {
            exchange.SetContractType("MA909")
            Log(exchange.GetTicker().Last)
            exchange.SetDirection("buy")
            Log(exchange.Buy(1000, 1))
            throw "stop"
        } else {
            Log("The commodity futures front-end processor is not connected")
        }
        Sleep(1000)
    }
}

৯. ডিজিটাল মুদ্রার ফিউচার ট্রেডিং মডিউল

ডিজিটাল মুদ্রার ফিউচার ব্যবহার মূলত উপরে [8] এ পণ্যের ফিউচারের সাথে একই

  • উদাহরণস্বরূপ, OKEX ব্যবহার করে, চুক্তির কোড হতে পারেঃ
    • this_week: এই সপ্তাহে
    • next_week: পরের সপ্তাহে
    • চতুর্থাংশ: চতুর্থাংশ
    • swap: চিরস্থায়ী
  • বিটমেক্সঃ
    • XBTUSD
    • ETHUSD
  • সেট লিভারেজ মডিউল

img

এটি ডিজিটাল মুদ্রার ফিউচারগুলির লিভারেজ সেট করতে ব্যবহৃত হয়।

#Note: Backtesting is not supported.

যেমন জাভাস্ক্রিপ্ট কৌশলঃ

function main () {
    exchange.SetMarginLevel(10)
}

ভিজ্যুয়ালাইজেশন কৌশলগুলির উদাহরণঃ

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318আরও কৌশল জানতে দয়া করে দেখুনঃhttps://www.fmz.com/square

এই সিরিজের অন্যান্য প্রবন্ধ

  • ট্রেডিং কৌশল তৈরির জন্য ভিজ্যুয়ালাইজেশন মডিউল - গভীর (https://www.fmz.com/digest-topic/9509) ট্রেডিং কৌশল তৈরির জন্য ভিজ্যুয়ালাইজেশন মডিউল - প্রথম পরিচিত (https://www.fmz.com/bbs-topic/9814) বিরক্তিকর প্রোগ্রামিং সহজেই বিল্ডিং ব্লক দিয়ে সম্পন্ন করা যেতে পারে। এটি চেষ্টা করা খুব আকর্ষণীয়!

সম্পর্কিত

আরো