বিকল্প ট্রেডিং আইডিয়া - কে-লাইন এরিয়া ট্রেডিং কৌশল

লেখক:লিডিয়া, তৈরিঃ ২০২৩-১১-০৬ 13:33:17, আপডেটঃ ২০২৪-০১-০১ ১২ঃ২০ঃ১৯

img

এই নিবন্ধে, আমরা ধারণার অন্বেষণ করব এবং স্ক্রিপ্টটি বাস্তবায়নের চেষ্টা করব।

কে-লাইন এলাকা কৌশলটির মূল ধারণা

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

কে-লাইন এলাকা কৌশল নীতি

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

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

কে-লাইন এলাকা কৌশলটির সুবিধা

কে-লাইন এলাকা কৌশলটির সুবিধা হল এটির মূল্যের প্রবণতার মাত্রা এবং পরিবর্তনের পাশাপাশি ক্রয় এবং বিক্রয় মনোভাবের পরিবর্তনের সমন্বয়ে একটি তুলনামূলকভাবে সম্পূর্ণ পরিমাণগত ট্রেডিং কৌশল প্রদান করে। এর সুবিধাগুলির মধ্যে রয়েছেঃ

  • এটি ট্রেডারদের বাজারের প্রবণতা আরও ভালভাবে বুঝতে সহায়তা করে প্রবণতা বিপরীত হওয়ার সম্ভাবনা চিহ্নিত করার জন্য একটি সহজ এবং স্বজ্ঞাত পদ্ধতি সরবরাহ করে।
  • এটি K-line area এবং KDJ ইন্ডিকেটরকে একত্রিত করে কৌশলটির নির্ভরযোগ্যতা এবং নির্ভুলতা বৃদ্ধি করে।
  • বিপণনের বিভিন্ন চাহিদা মেটাতে বাজারের অবস্থার উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করার জন্য উচ্চতর নমনীয়তা সক্ষম করে।

কে-লাইন এরিয়া স্ট্র্যাটেজির ঝুঁকি

যদিও কে-লাইন এলাকার কৌশলটির কিছু সুবিধা রয়েছে, তবে এটি কিছু ঝুঁকিও বহন করে, যার মধ্যে রয়েছেঃ

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

কে-লাইন এরিয়া স্ট্র্যাটেজির অপ্টিমাইজেশান দিক

কে-লাইন এলাকা কৌশল অপ্টিমাইজ করার জন্য, নিম্নলিখিত দিক বিবেচনা করুনঃ

  • প্যারামিটার অপ্টিমাইজেশানঃ বিভিন্ন বাজার পরিস্থিতি এবং ট্রেডিংয়ের প্রয়োজনের সাথে খাপ খাইয়ে নেওয়ার জন্য প্রান্তিক মান এবং KDJ সূচক প্যারামিটারগুলি ক্রমাগত সামঞ্জস্য এবং অপ্টিমাইজ করুন।
  • ঝুঁকি ব্যবস্থাপনাঃ ক্ষতির ঝুঁকি কমাতে স্টপ লস এবং লাভ নেওয়ার নিয়ম সহ কার্যকর ঝুঁকি ব্যবস্থাপনা কৌশল বাস্তবায়ন করুন।
  • মাল্টি-স্ট্র্যাটেজি সংমিশ্রণঃ ব্যাপক ট্রেডিং কৌশলগুলির কর্মক্ষমতা উন্নত করার জন্য K- লাইন এলাকা কৌশলটি অন্যান্য কৌশলগুলির সাথে একত্রিত করুন।
  • রিয়েল-টাইম মনিটরিং এবং সমন্বয়ঃ কৌশলগুলির কার্যকারিতা নিয়মিত পর্যবেক্ষণ করুন, বাস্তব পরিস্থিতির উপর ভিত্তি করে সামঞ্জস্য এবং উন্নতি করুন।

জাভাস্ক্রিপ্ট ব্যবহার করে কৌশল বাস্তবায়ন করুন

  • কে-লাইন এলাকা গণনা করুন

  • লং পজিশনের উদ্বোধনী সংকেতঃ

    (১) নিম্নমুখী প্রবণতার K-লাইন এলাকা প্রান্তিক সীমাতে পৌঁছেছে, এটি আগে থেকে নির্ধারণ করা যেতে পারে।

    (২) KDJ সূচকের মান ৮০ এর বেশি।

  • শর্ট পজিশনের সূচনা সংকেতঃ

    (১) K-লাইন এলাকা উর্ধ্বমুখী প্রবণতার প্রান্তিক সীমায় পৌঁছেছে, এটি আগে থেকে নির্ধারণ করা যেতে পারে।

    (২) KDJ সূচকের মান ২০ এর কম।

  • লং/শর্ট পজিশনের জন্য প্রস্থানঃ ATR এর পিছনে স্টপ লস এবং লাভ নিন।

কোড বাস্তবায়ন

// Parameter
var maPeriod = 30
var threshold = 50000
var amount = 0.1

// Global variable
let c = KLineChart({})
let openPrice = 0
let tradeState = "NULL"  // NULL BUY SELL

function calculateKLineArea(r, ma) {
    var lastCrossUpIndex = null
    var lastCrossDownIndex = null
    for (var i = r.length - 1 ; i >= 0 ; i--) {
        if (ma[i] !== null && r[i].Open < ma[i] && r[i].Close > ma[i]) {
            lastCrossUpIndex = i
            break
        } else if (ma[i] !== null && r[i].Open > ma[i] && r[i].Close < ma[i]) {
            lastCrossDownIndex = i
            break
        }

        if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close < ma[i - 1] && r[i].Close > ma[i]) {
            lastCrossUpIndex = i
            break
        } else if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close > ma[i - 1] && r[i].Close < ma[i]) {
            lastCrossDownIndex = i
            break
        }
    }

    var area = 0
    if (lastCrossDownIndex !== null) {
        for (var i = r.length - 1 ; i >= lastCrossDownIndex ; i--) {
            area -= Math.abs(r[i].Close - ma[i])
        }
    } else if (lastCrossUpIndex !== null) {
        for (var i = r.length - 1 ; i >= lastCrossUpIndex ; i--) {
            area += Math.abs(r[i].Close - ma[i])
        }
    }

    return [area, lastCrossUpIndex, lastCrossDownIndex]
}

function onTick() {
    var r = _C(exchange.GetRecords)
    if (r.length < maPeriod) {
        LogStatus(_D(), "Insufficient number of K-line")
        return 
    }
    var ma = TA.MA(r, maPeriod)
    var atr = TA.ATR(r)
    var kdj = TA.KDJ(r)
    var lineK = kdj[0]
    var lineD = kdj[1]
    var lineJ = kdj[2]
    var areaInfo = calculateKLineArea(r, ma)
    var area = _N(areaInfo[0], 0)
    var lastCrossUpIndex = areaInfo[1]
    var lastCrossDownIndex = areaInfo[2]
    
    r.forEach(function(bar, index) {
        c.begin(bar)
        c.plotcandle(bar.Open, bar.High, bar.Low, bar.Close, {overlay: true})
        let maLine = c.plot(ma[index], "ma", {overlay: true})
        let close = c.plot(bar.Close, 'close', {overlay: true})
        c.fill(maLine, close, {color: bar.Close > ma[index] ? 'rgba(255, 0, 0, 0.1)' : 'rgba(0, 255, 0, 0.1)'})
        if (lastCrossUpIndex !== null) {
            c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
        } else if (lastCrossDownIndex !== null) {
            c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
        }
        c.plot(lineK[index], "K")
        c.plot(lineD[index], "D")
        c.plot(lineJ[index], "J")

        c.close()
    })
    
    if (tradeState == "NULL" && area < -threshold && lineK[lineK.length - 1] > 70) {
        // long
        let tradeInfo = $.Buy(amount)
        if (tradeInfo) {
            openPrice = tradeInfo.price
            tradeState = "BUY"
        }
    } else if (tradeState == "NULL" && area > threshold && lineK[lineK.length - 1] < 30) {
        // short
        let tradeInfo = $.Sell(amount)
        if (tradeInfo) {
            openPrice = tradeInfo.price
            tradeState = "SELL"
        }
    }
    
    let stopBase = tradeState == "BUY" ? Math.max(openPrice, r[r.length - 2].Close) : Math.min(openPrice, r[r.length - 2].Close)
    if (tradeState == "BUY" && r[r.length - 1].Close < stopBase - atr[atr.length - 2]) {
        // cover long
        let tradeInfo = $.Sell(amount)
        if (tradeInfo) {
            tradeState = "NULL"
            openPrice = 0
        }        
    } else if (tradeState == "SELL" && r[r.length - 1].Close > stopBase + atr[atr.length - 2]) {
        // cover short 
        let tradeInfo = $.Buy(amount)
        if (tradeInfo) {
            tradeState = "NULL"
            openPrice = 0
        }        
    }

    LogStatus(_D(), "area:", area, ", lineK[lineK.length - 2]:", lineK[lineK.length - 2])
}


function main() {    
    if (exchange.GetName().includes("_Futures")) {
        throw "not support Futures"
    }
    while (true) {
        onTick()
        Sleep(1000)
    }
}

কৌশলগত যুক্তি খুবই সহজ:

  1. প্রথমত, কিছু গ্লোবাল ভেরিয়েবল এবং প্যারামিটার সংজ্ঞায়িত করা হয়, যার মধ্যে রয়েছেঃ

কৌশলগত পরামিতি

  • maPeriod: চলমান গড়ের সময়কাল।
  • threshold: ক্রয় বা বিক্রয়ের সময় নির্ধারণের জন্য ব্যবহৃত একটি threshold।
  • পরিমাণঃ প্রতিটি লেনদেনের পরিমাণ।

গ্লোবাল ভেরিয়েবল

  • c: একটি কে-লাইন চার্ট বস্তু, যা চার্ট আঁকার জন্য ব্যবহৃত হয়।
  • openPrice: ওপেন প্রাইস রেকর্ড করে।
  • tradeState: ট্রেডিং স্ট্যাটাস রেকর্ড করে, যা হতে পারে NULL (খালি অবস্থান), BUY বা SELL

ফাংশন গণনা করুন

  • ক্যালকুলেটকেলাইনএরিয়া ফাংশন: এটি একটি নির্দিষ্ট সময়ের মধ্যে একটি কে-লাইন চার্টে মূল্য এবং চলমান গড় রেখার মধ্যে এলাকা গণনা করতে ব্যবহৃত হয় এবং এলাকার মান, সর্বশেষ আপক্রসিং কে-লাইন ক্রসিংয়ের সূচক এবং সর্বশেষ ডাউনক্রসিং কে-লাইন ক্রসিংয়ের সূচক প্রদান করে। এই মানগুলি কবে কিনতে এবং বিক্রি করতে হবে তা নির্ধারণের জন্য পরবর্তী সিদ্ধান্তে ব্যবহৃত হয়।

প্রধান লুপ ফাংশন

  • onTick ফাংশন: এটি মূল কৌশল কার্যকরকরণ ফাংশন, এবং এখানে ফাংশনের মধ্যে অপারেশন আছেঃ

    ক. সর্বশেষ কে-লাইন তথ্য সংগ্রহ করুন এবং নিশ্চিত করুন যে কে-লাইনের সংখ্যা maPeriod এর চেয়ে কম নয়, অন্যথায় অবস্থা রেকর্ড করুন এবং রিটার্ন করুন।

    b. চলমান গড় রেখা ma এবং ATR সূচক atr, সেইসাথে KDJ সূচক গণনা করুন।

    c. areaInfo থেকে এলাকার তথ্য, সর্বশেষ ক্রস-ওভার কে-লাইন সূচক এবং সর্বশেষ ক্রস-অন্ডার কে-লাইন সূচক পান।

    d. K-লাইন চার্ট অবজেক্ট c ব্যবহার করে K-লাইন এবং ইন্ডিকেটর লাইন আঁকতে বিভিন্ন রঙ পূরণ করে যা মুভিং গড় রেখার সাথে দামের সম্পর্কের উপর ভিত্তি করে।

    e. শর্ত অনুযায়ী ক্রয় বা বিক্রয় সময় নির্ধারণ করুনঃ

    যদি tradeState NULL হয়, এবং এলাকা -থ্রেশহোল্ডের কম হয়, এবং KDJ এর K মান 70 এর বেশি হয়, একটি ক্রয় অপারেশন সম্পাদন করুন। যদি tradeState NULL হয়, এবং এলাকা threshold এর চেয়ে বড় হয়, এবং KDJ এর K মান 30 এর কম হয়, তাহলে একটি বিক্রয় অপারেশন সম্পাদন করুন। f. স্টপ লস এবং লাভের শর্তাবলী সেট করুন। যদি এই শর্তগুলি পূরণ হয়, পজিশন বন্ধ করুনঃ

    যদি এটি ক্রয় অবস্থায় থাকে, যখন মূল্য শেষ ট্রেডিং দিনের বন্ধের মূল্যের নিচে যায়, বিয়োগ পূর্ববর্তী দিনের ATR (গড় সত্য পরিসীমা), অবস্থান বন্ধ। যদি এটি বিক্রয় অবস্থায় থাকে, যখন মূল্য শেষ ট্রেডিং দিনের বন্ধের মূল্যের উপরে এবং আগের দিনের ATR (গড় সত্য পরিসীমা) এর উপরে উঠে যায়, তখন অবস্থান বন্ধ হয়।

    main function: এটি প্রধান এক্সিকিউশন এন্ট্রি পয়েন্ট হিসাবে কাজ করে। এটি চেক করে যে এক্সচেঞ্জ নামটিতে _Futures রয়েছে কিনা। যদি তা হয় তবে একটি ব্যতিক্রম ছুঁড়ে ফেলা হবে; অন্যথায় এটি একটি অসীম লুপে প্রবেশ করে যেখানে অনটিক ফাংশন প্রতি সেকেন্ডে কার্যকর হয়।

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

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

কৌশল ব্যাকটেস্টিং

img

img

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

img img

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

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

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


আরো