কয়েনরুল স্ক্রিপ্টের উপর ভিত্তি করে ওবিভি পিরামিড কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-০৮ ১৫ঃ৫৮ঃ২৯
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটিকে OBV পিরামিড বলা হয়। এটি OBV সূচকের উপর ভিত্তি করে পজিশন খোলার নকশা করে এবং পিরামিড ক্রমবর্ধমান পজিশন পদ্ধতি গ্রহণ করে।

নীতিমালা

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

এই কৌশলটি 0 এর উপরে OBV ক্রসিং দ্বারা একটি আপট্রেন্ড নিশ্চিত করে। যখন একটি আপট্রেন্ড গঠন করে, পিরামিড ক্রমবর্ধমান অবস্থানের নিয়মগুলি সেট করা হয়, যা 7 টি পর্যন্ত অতিরিক্ত ক্রয়ের অনুমতি দেয়। এটি লাভ গ্রহণ এবং স্টপ লস সেট করার সময় প্রবণতা থেকে মুনাফা অর্জনের লক্ষ্য রাখে।

সুবিধা বিশ্লেষণ

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

বিশেষ করে, প্রধান সুবিধা হলঃ

  1. OBV ব্যবহার করে সঠিক প্রবণতা বিচার;
  2. লাভের জন্য প্রবণতা ট্র্যাক করার জন্য পিরামিড কেনা;
  3. লাভ/স্টপ লস নিয়ন্ত্রণের ঝুঁকি;
  4. সহজ এবং সুস্পষ্ট যুক্তি।

ঝুঁকি বিশ্লেষণ

প্রধান ঝুঁকি দুটি দিক থেকে আসেঃ

  1. ভুল OBV সংকেত যা মিস করা সুযোগ বা ভুল এন্ট্রি হতে পারে;
  2. অতিরিক্ত পরিমাণে কেনা ঝুঁকি বাড়ায়।

সমাধান:

  1. সঠিকতা নিশ্চিত করার জন্য OBV পরামিতিগুলি অপ্টিমাইজ করুন;
  2. নিয়ন্ত্রণযোগ্য ঝুঁকির জন্য অতিরিক্ত ক্রয়কে যুক্তিসঙ্গতভাবে সীমাবদ্ধ করুন।

অপ্টিমাইজেশান নির্দেশাবলী

মূল অপ্টিমাইজেশান দিকঃ

  1. উচ্চতর নির্ভুলতার জন্য OBV প্যারামিটার অপ্টিমাইজেশন;
  2. অতিরিক্ত ক্রয়ের সংখ্যা এবং পরিমাণের অপ্টিমাইজেশান;
  3. লাভ/স্টপ লস অপ্টিমাইজেশান;
  4. একমাত্র OBV-এর উপর নির্ভরতা এড়ানোর জন্য অন্যান্য সূচক অন্তর্ভুক্ত করা।

এটি কৌশলকে আরও স্থিতিশীল, নিয়ন্ত্রণযোগ্য এবং প্রসারিত করতে পারে।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni

//@version=4

strategy(title = " OBV Pyr", overlay = true, pyramiding=5,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 20, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)

//
fastLength = input(250, title="Fast filter length ", minval=1)
slowLength = input(500,title="Slow filter length",  minval=1)
source=close
v1=ema(source,fastLength)
v2=ema(source,slowLength)
 
//
 
filter=true 
src = close


LengthOBV = input(20)

nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume 
c = cum(nv) 
c_tb = c - sma(c,LengthOBV) 

// Conditions

longCond = crossover(c_tb,0)
//shortCond =crossunder(cnv_tb,0)

//

longsignal  = (v1 > v2 or filter == false ) and longCond
//shortsignal = (v1 < v2 or filter == false ) and shortCond 
 
//set take profit
 
ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick
 
//set take profit
 
LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick
 
 
////Order Placing
//
strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)
//
strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)
//
strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)
//
strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)
//
strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)
//
strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)
//
strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)
//
//
//
if strategy.position_size > 0
    strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)
    


আরো