P-সংকেত বিপরীত কৌশল


সৃষ্টির তারিখ: 2024-01-29 14:44:56 অবশেষে সংশোধন করুন: 2024-01-29 14:44:56
অনুলিপি: 0 ক্লিকের সংখ্যা: 663
1
ফোকাস
1617
অনুসারী

P-সংকেত বিপরীত কৌশল

ওভারভিউ

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

কৌশল নীতি

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

কার্ডিনালিটি, ΔErf এবং পর্যবেক্ষণ সময়। কার্ডিনালিটি নমুনা সংখ্যা নিয়ন্ত্রণ করে, ΔErf ত্রুটি ফাংশনের মৃত অঞ্চল নিয়ন্ত্রণ করে, লেনদেনের ঘনত্ব হ্রাস করে। পর্যবেক্ষণ সময় কৌশল শুরু করার সময় নিয়ন্ত্রণ করে।

সামর্থ্য বিশ্লেষণ

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

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

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

পি-সিগন্যাল বিপরীতকরণ কৌশলটির প্রধান ঝুঁকি হ’ল এটি সম্ভাব্যতা বন্টনের প্যারামিটারগুলির উপর খুব বেশি নির্ভর করে, এটি অস্বাভাবিক তথ্যের প্রভাবের দ্বারা ভুল সিদ্ধান্তের জন্য সহজ। তদ্ব্যতীত, বিপরীতকরণ কৌশলগুলির হার হার কম এবং একক মুনাফা সীমিত।

কার্ডিনালিটি প্যারামিটার বাড়িয়ে নমুনার আকার বাড়িয়ে ডেটা অস্বাভাবিকতার প্রভাব কমাতে পারে। ΔErf পরিধি যথাযথভাবে বাড়ানো এবং ঝুঁকি নিয়ন্ত্রণের জন্য লেনদেনের ঘনত্ব হ্রাস করা।

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

পি-সিগন্যাল রিভার্সনের কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. অন্যান্য সূচকগুলির সাথে মিলিত হয়ে অস্বাভাবিক সংকেতগুলি ফিল্টার করে, যেমন লেনদেনের পরিমাণের বৃদ্ধি এবং অন্যান্য বৈশিষ্ট্য।

  2. সিগন্যালটি একাধিক সময় ফ্রেমে যাচাই করে বিচারককে আরও স্থিতিশীল করে তোলা।

  3. একক ক্ষতি হ্রাস করার জন্য স্টপ লস কৌশল বাড়ানো।

  4. অপ্টিমাইজেশান প্যারামিটারগুলিকে সর্বোত্তম সমন্বয় খুঁজে বের করে মুনাফার হার বাড়িয়ে তোলা।

  5. মেশিন লার্নিং-এর সাথে যুক্ত সিদ্ধান্তের প্যারামিটারগুলির গতিশীল সমন্বয়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// **********************************************************************************************************
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// P-Signal Strategy RVS © Kharevsky
// **********************************************************************************************************
strategy('P-Signal Strategy RVS.', precision=3, process_orders_on_close=true, pyramiding=0, 
     commission_type=strategy.commission.percent,
     commission_value=0.2)
// Parameters and const of P-Signal.
nPoints = input.int(title='Cardinality:', defval=4, minval=4, maxval=200, group='Parameters of strategy.')
ndErf = input.float(title='|ΔErf|:', defval=0, minval=0, maxval=1, step=0.01, group='Parameters of strategy.')
tStartDate = input(title='Start date:', defval=timestamp('30 Dec 1957 00:00 +0300'), group='Observation time.')
int nIntr = nPoints - 1
// Horner's method for the error (Gauss) & P-Signal functions.
fErf(x) =>
    nT = 1.0 / (1.0 + 0.5 * math.abs(x))
    nAns = 1.0 - nT * math.exp(-x * x - 1.26551223 + 
     nT * (1.00002368 + nT * (0.37409196 + nT * (0.09678418 + 
     nT * (-0.18628806 + nT * (0.27886807 + nT * (-1.13520398 + 
     nT * (1.48851587 + nT * (-0.82215223 + nT * 0.17087277)))))))))
    x >= 0 ? nAns : -nAns
fPSignal(ser, int) =>
    nStDev = ta.stdev(ser, int)
    nSma = ta.sma(ser, int)
    nStDev > 0 ? fErf(nSma / nStDev / math.sqrt(2)) : math.sign(nSma)
// Data.
float nPSignal = ta.sma(fPSignal(ta.change(ohlc4), nIntr), nIntr)
float ndPSignal = math.sign(nPSignal[0] - nPSignal[1])
bool isStartDate = true
// Reversal Strategy.
strategy.entry('short', strategy.short, when=isStartDate and nPSignal > ndErf and ndPSignal < 0)
strategy.entry('long', strategy.long, when=isStartDate and nPSignal < -ndErf and ndPSignal > 0)
// Plotting. 
hline(+1.0, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(-1.0, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(-ndErf, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(ndErf, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
plot(nPSignal, color=color.new(color.blue, 0), style=plot.style_line)
// Table of state.
if barstate.isconfirmed
    var Table = table.new(position=position.bottom_right, columns=3, rows=1, 
     frame_color=color.new(color.orange, 70), frame_width=1, 
     border_color=color.new(color.orange, 70), border_width=1)
    table.cell(table_id=Table, column=0, row=0, 
     text=strategy.position_size > 0 ? 'Long: ' + str.tostring(strategy.position_size) : 'Short: ' + str.tostring(strategy.position_size), 
     text_color=strategy.position_size > 0 ? color.green : color.red)
    table.cell(table_id=Table, column=1, row=0, 
     text='Net P/L: ' + str.tostring(strategy.netprofit, '#.#'), 
     text_color=strategy.netprofit > 0 ? color.green : color.red)
    table.cell(table_id=Table, column=2, row=0, 
     text='Open P/L: ' + str.tostring(strategy.openprofit, '#.#'), 
     text_color=strategy.openprofit > 0 ? color.green : color.red)
// The end.