চাঁদের পর্যায়ের উপর ভিত্তি করে দ্বি-পন্থী ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি চাঁদের ধাপের উপর ভিত্তি করে দীর্ঘ এবং সংক্ষিপ্ত উভয়ই ট্রেড করে, নতুন চাঁদে দীর্ঘ এবং পূর্ণ চাঁদে সংক্ষিপ্ত হয়।

কৌশলগত যুক্তি

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

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

সুবিধা

  1. চাঁদ চক্রের সময়কাল ব্যবহার করে দীর্ঘমেয়াদী প্রবণতা ধরা
  2. কাস্টমাইজযোগ্য প্রদর্শন রং, পূরণ, ইত্যাদি
  3. দ্বিপাক্ষিক কৌশল নির্বাচন
  4. পরিষ্কার খোলা/বন্ধ চিহ্নিতকারী
  5. অপ্টিমাইজেশনের জন্য কাস্টমাইজযোগ্য ব্যাকটেস্ট শুরু সময়

ঝুঁকি

  1. দীর্ঘ চাঁদ চক্র স্বল্পমেয়াদী আন্দোলন ধরা ব্যর্থ
  2. স্টপ লস না থাকলে বড় ক্ষতি হতে পারে।
  3. প্যাটার্ন গঠনের প্রবণতাযুক্ত স্থির চক্র

ঝুঁকি হ্রাসঃ

  1. মাল্টি-টাইমফ্রেম ট্রেডিংয়ের জন্য অন্যান্য স্বল্প-চক্রের সূচক যোগ করুন
  2. স্টপ লস বাস্তবায়ন করুন
  3. ক্ষতির প্রভাব সীমাবদ্ধ করার জন্য অবস্থানের আকারকে অনুকূল করুন

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

কৌশলটি নিম্নলিখিতগুলির মাধ্যমে উন্নত করা যেতে পারেঃ

  1. সংকেত ফিল্টার করার জন্য আরও সূচক যুক্ত করা এবং স্থিতিশীলতা উন্নত করা
  2. অপ্টিমাইজ এবং হ্রাস ক্ষতি প্রভাব জন্য অবস্থান আকার যোগ করা
  3. হ্রাস সীমাবদ্ধ করার জন্য স্টপ লস মডিউল যোগ করা
  4. স্লাইপ হ্রাস এবং জয় হার উন্নত করার জন্য খোলা / বন্ধ অবস্থার অপ্টিমাইজ করা

সিদ্ধান্ত

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
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/

// ---------------------------© paaax----------------------------
// ---------------- Author1: Pascal Simon (paaax) ----------------
// -------------------- www.pascal-simon.de ---------------------
// ---------------- www.tradingview.com/u/paaax/-----------------
// Source: https://gist.github.com/L-A/3497902#file-moonobject-js

// -------------------------© astropark--------------------------
// --------------- Author2: Astropark (astropark) ---------------
// -------------- https://bit.ly/astroparktrading ---------------
// -------------- www.tradingview.com/u/astropark/---------------


// @version=4
strategy(title="[astropark] Moon Phases [strategy]", overlay=true, pyramiding = 10, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 100000, currency = currency.USD, commission_value = 0.1)

// INPUT    --- {

newMoonColor = input(color.black, "New Moon Color")
fullMoonColor = input(color.white, "Full Moon Color")

fillBackground = input(true, "Fill Background?")
newMoonBackgroundColor = input(#fffff0aa, "New Moon Background Color")
fullMoonBackgroundColor = input(#aaaaaaaa, "Full Moon Background Color")

//} --- INPUT

// FUNCTION --- {

normalize(_v) =>
    x = _v
    x := x - floor(x)
    if x < 0
        x := x + 1
    x

calcPhase(_year, _month, _day) =>

    int y = na
    int m = na
    float k1 = na 
    float k2 = na 
    float k3 = na
    float jd = na
    float ip = na

    y := _year - floor((12 - _month) / 10)       
    m := _month + 9
    if m >= 12 
        m := m - 12
    
    k1 := floor(365.25 * (y + 4712))
    k2 := floor(30.6 * m + 0.5)
    k3 := floor(floor((y / 100) + 49) * 0.75) - 38
    
    jd := k1 + k2 + _day + 59
    if jd > 2299160
        jd := jd - k3
    
    ip := normalize((jd - 2451550.1) / 29.530588853)
    age = ip * 29.53

//} --- FUNCTION

// INIT     --- {

age = calcPhase(year, month, dayofmonth)
moon = 
     floor(age)[1] > floor(age) ? 1 : 
     floor(age)[1] < 15 and floor(age) >= 15 ? -1 : na

//} --- INIT

// PLOT     --- {

plotshape(
     moon==1, 
     "Full Moon", 
     shape.circle, 
     location.top, 
     color.new(newMoonColor, 20), 
     size=size.normal
     )   

plotshape(
     moon==-1, 
     "New Moon", 
     shape.circle, 
     location.bottom, 
     color.new(fullMoonColor, 20), 
     size=size.normal
     )   

var color col = na
if moon == 1 and fillBackground
    col := fullMoonBackgroundColor
if moon == -1 and fillBackground
    col := newMoonBackgroundColor
bgcolor(col, title="Moon Phase", transp=10)

//} --- PLOT


// STRATEGY     --- {

strategy = input("buy on new moon, sell on full moon", options=["buy on new moon, sell on full moon","sell on new moon, buy on full moon"])
longCond = strategy == "buy on new moon, sell on full moon" ? moon == -1 : moon == 1
shortCond = strategy == "buy on new moon, sell on full moon" ? moon == 1 : moon == -1

weAreInLongTrade = false
weAreInShortTrade = false
weAreInLongTrade := (longCond or weAreInLongTrade[1]) and shortCond == false
weAreInShortTrade := (shortCond or weAreInShortTrade[1]) and longCond == false
buySignal = longCond and weAreInLongTrade[1] == false
sellSignal = shortCond and weAreInShortTrade[1] == false

showBuySellSignals = input(defval=true, title = "Show Buy/Sell Signals")
longEnabled = input(true, title="Long enabled")
shortEnabled = input(true, title="Short enabled")

analysisStartYear = input(2017, "Backtesting From Year", minval=1980)
analysisStartMonth = input(1, "And Month", minval=1, maxval=12)
analysisStartDay = input(1, "And Day", minval=1, maxval=31)
analysisStartHour = input(0, "And Hour", minval=0, maxval=23)
analysisStartMinute = input(0, "And Minute", minval=0, maxval=59)
analyzeFromTimestamp = timestamp(analysisStartYear, analysisStartMonth, analysisStartDay, analysisStartHour, analysisStartMinute)

plotshape(showBuySellSignals and buySignal, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(showBuySellSignals and sellSignal, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

strategy.entry("long", strategy.long, when = time > analyzeFromTimestamp and buySignal and longEnabled)
strategy.entry("short", strategy.short, when = time > analyzeFromTimestamp and sellSignal and shortEnabled)
strategy.close("long", when = sellSignal)
strategy.close("short", when = buySignal)

//} --- STRATEGY


আরো