গতিশীল DCA-এর উপর ভিত্তি করে ক্রিপ্টোকারেন্সি পরিমাণগত ট্রেডিং কৌশল

DCA TP SO (Safety Orders) API OHLC4 HL2 HL3 ROI
সৃষ্টির তারিখ: 2025-02-19 16:59:45 অবশেষে সংশোধন করুন: 2025-02-27 17:56:06
অনুলিপি: 1 ক্লিকের সংখ্যা: 462
2
ফোকাস
319
অনুসারী

গতিশীল DCA-এর উপর ভিত্তি করে ক্রিপ্টোকারেন্সি পরিমাণগত ট্রেডিং কৌশল গতিশীল DCA-এর উপর ভিত্তি করে ক্রিপ্টোকারেন্সি পরিমাণগত ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত চারটি মডিউল নিয়ে গঠিতঃ

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

কৌশলগত সুবিধা

  1. বাজার অভিযোজনযোগ্যতাঃ ক্রিপ্টোকারেন্সি বাজারগুলির উচ্চ-অস্থিরতার জন্য বিশেষভাবে অপ্টিমাইজ করা হয়েছে
  2. ঝুঁকি বিচ্ছিন্নকরণঃ ক্রিপ্টোকারেন্সি বাজারে অপ্রত্যাশিত ঝুঁকি কমানোর জন্য গতিশীল ব্যাচিং
  3. লিভারেজ দক্ষতাঃ ক্রিপ্টোকারেন্সি বাজারের দামের ওঠানামা থেকে উপকৃত হওয়া
  4. অটোমেটেড এক্সিকিউশনঃ বেশ কয়েকটি মূলধারার ক্রিপ্টোকারেন্সি এক্সচেঞ্জের জন্য API অ্যাক্সেস সমর্থন করে
  5. তহবিলের দক্ষতাঃ স্মার্ট লিভারেজ ম্যানেজমেন্টের মাধ্যমে ক্রিপ্টোকারেন্সি ব্যবসায়ের তহবিলের দক্ষতা বাড়ানো

কৌশলগত ঝুঁকি

  1. বাজার ঝুঁকিঃ ক্রিপ্টোকারেন্সি বাজারের চরম অস্থিরতা বড় ধরনের প্রত্যাহারের দিকে নিয়ে যেতে পারে
  2. তরলতা ঝুঁকিঃ কিছু ছোট-বাজার মূল্যের ক্রিপ্টোকারেন্সির তরলতা সমস্যা হতে পারে
  3. লিভারেজ ঝুঁকিঃ ক্রিপ্টোকারেন্সি বাজারের উচ্চ অস্থিরতা লিভারেজ ট্রেডিংয়ের ঝুঁকি বাড়ায়
  4. প্রযুক্তিগত ঝুঁকিঃ এক্সচেঞ্জের এপিআই স্থিতিশীলতা এবং নেটওয়ার্ক সংযোগের গুণমানের উপর নির্ভরশীল
  5. রেগুলেটরি ঝুঁকিঃ ক্রিপ্টোকারেন্সি বাজারে নীতিগত পরিবর্তনগুলি কৌশল বাস্তবায়নে প্রভাব ফেলতে পারে

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. অস্থিরতা স্বনির্ধারণঃ ক্রিপ্টোকারেন্সি বাজারে স্বতন্ত্র অস্থিরতার সূচক প্রবর্তন করে যা প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করে
  2. মাল্টিকারেন্সি সমন্বয়ঃ একক মুদ্রার ঝুঁকি বিচ্ছিন্ন করার জন্য মাল্টিকারেন্সি সমন্বিত ট্রেডিং লজিক বিকাশ করা
  3. মার্কেট সেন্টিমেন্ট ফিল্টারিংঃ ক্রিপ্টোকারেন্সি মার্কেটের সংবেদনশীলতার পরিমাপকে একত্রিত করা, প্রবেশের সময়কে অনুকূল করা
  4. লেনদেনের ব্যয় অপ্টিমাইজেশনঃ স্মার্ট রুটিং এবং এক্সচেঞ্জের মাধ্যমে ব্যয় হ্রাস করুন
  5. ঝুঁকি সতর্কতা ব্যবস্থাঃ বাজার অস্বাভাবিকতার উপর ভিত্তি করে একটি সতর্কতা ব্যবস্থা স্থাপন

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2020-08-29 15:00:00
end: 2025-02-18 17:22:45
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/

//@version=5
strategy('Autotrade.it DCA', overlay=true, pyramiding=999, default_qty_type=strategy.cash, initial_capital=10000, commission_value=0.02)

// Date Ranges
from_month = 1
from_day = 1
from_year = 2021
to_month = 1
to_day = 1
to_year = 9999
start = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)  // backtest finish window
window = time >= start and time <= finish ? true : false  // create function "within window of time"

source_type = 'OHLC4'
source_function(type) =>
    if type == 'Close'
        close
    else if type == 'Open'
        open
    else if type == 'High'
        high
    else if type == 'Low'
        low
    else if type == 'HL2'
        hl2
    else if type == 'HL3'
        hlc3
    else if type == 'OHLC4'
        ohlc4
    else if type == 'Median Body'
        (open + close) / 2
    else if type == 'Weighted Close'
        (high + low + 2 * close) / 4
    else if type == 'Trend Biased'
        close > open ? (high + close) / 2 : (low + close) / 2
    else if type == 'Trend Biased Extreme'
        close > open ? high : low
truncate(number, decimals) =>
    factor = math.pow(10, decimals)
    int(number * factor) / factor
// Strategy Inputs
price_deviation = input.float(1.0, title='Price deviation to open safety orders (%)', minval=0.0) / 100
take_profit = 1.0 / 100
base_order = 10.0
safe_order = 10.0
safe_order_volume_scale = 1.1
safe_order_step_scale = 1.1
max_safe_order = 30

var current_so = 0
var initial_order = 0.0
var previous_high_value = 0.0
var original_ttp_value = 0.0
// Calculate our key levels
take_profit_level = strategy.position_avg_price * (1 + take_profit)
startTrade = input.int(defval=1, title='Trade Start')
margin = input.float(title='Margin', defval=1, step=1, tooltip='USDT')
leverage = input.int(title='Leverage', defval=50, tooltip='it only used on futures trade')
multi = 1.125
var float multiplier = 1
symbol = str.replace_all(syminfo.ticker, '.P', '')
var float totalMargin = 0.0
var bool isTrade =false
var float totalPrice = 0.0
var int totalTrade = 0
var float totalQtys = 0
var float sellPrice = 0
var float sellQty = 0


// // First Position
if strategy.position_size == 0 and window and source_function(source_type) > 0 and previous_high_value == 0.0
    strategy.entry('No Position', strategy.long, qty=base_order / source_function(source_type))
    initial_order := source_function(source_type)
    current_so := 1
    previous_high_value := 0.0
    original_ttp_value := 0
    original_ttp_value

threshold = 0.0
if safe_order_step_scale == 1.0
    threshold := initial_order - initial_order * price_deviation * safe_order_step_scale * current_so
    threshold
else
    threshold := initial_order - initial_order * ((price_deviation * math.pow(safe_order_step_scale, current_so) - price_deviation) / (safe_order_step_scale - 1))
    threshold

// Average Down
if current_so > 0 and source_function(source_type) <= threshold and current_so <= max_safe_order and previous_high_value == 0.0
    if(startTrade<=current_so)
        margin := math.round(margin * multiplier * 100) / 100
        multiplier *= multi
        totalMargin += margin
        avePrice = (totalPrice/totalTrade)
        qty = margin*leverage/close
        isTrade := true
        totalPrice+=close
        totalTrade+=1
        totalQtys+=qty
        alert('{"category": "linear", "mode": 3, "tradeMode": 0, "symbol": "' + str.tostring(symbol) + '", "leverage": "' + str.tostring(leverage) + '", "side": "Buy", "orderType": "Market", "marketUnit": "quoteCoin", "qty": "' + str.tostring(margin) + '", "reduceOnly": false, "positionIdx": 1 }')
        strategy.entry('Trade # ' + str.tostring(current_so) +"---Margin: $" + str.tostring(margin), direction=strategy.long, qty=safe_order * math.pow(safe_order_volume_scale, current_so - 1) / source_function(source_type))
    else
        strategy.entry('Trade # ' + str.tostring(current_so) +" No position", direction=strategy.long, qty=safe_order * math.pow(safe_order_volume_scale, current_so - 1) / source_function(source_type))
    current_so += 1
    current_so


// Take Profit!
if take_profit_level <= source_function(source_type) and strategy.position_size > 0 or previous_high_value > 0.0
    if(isTrade)
        avePrice = totalMargin * leverage / totalQtys * 1.002  // Include fee directly
        percentGain = math.round((close - avePrice) / avePrice * 100 * 100) / 100
        gain = math.round(percentGain * leverage * totalMargin / 100 * 100) / 100
        isTrade := false
        sellPrice := avePrice*0.95
        sellQty := totalMargin * leverage/sellPrice
        loop = current_so-1
        testQty = sellQty/loop
        strategy.close_all(comment= "Take Profit: $" + str.tostring(gain))
        alert('{"category": "linear", "mode": 3, "tradeMode": 0, "symbol": "' + str.tostring(symbol) + '", "leverage": "' + str.tostring(testQty) + '", "side": "Sell", "orderType": "Market", "marketUnit": "baseCoin", "qty": "' + str.tostring(sellQty) + '", "reduceOnly": true, "positionIdx": 1, "loop": "' + str.tostring(loop) + '" }')
                    
    else
        strategy.close_all(comment='No Position')
    current_so := 0
    previous_high_value := 0
    original_ttp_value := 0
    multiplier:=1
    totalMargin:=0.0
    totalPrice:=0
    totalTrade:=0
    totalQtys:=0