বি ভি এর ইচিমোকু ক্লাউড - সমস্ত সংকেত

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

এই স্ক্রিপ্টটি ট্রেডিংয়ের জন্য ইচিমোকু ক্লাউড সিস্টেমের জন্য একটি কৌশল। এটি কীভাবে কাজ করে তা এখানেঃ

  1. স্ক্রিপ্টটি আপনাকে ইচিমোকু ক্লাউড সিস্টেম দ্বারা প্রদত্ত বিভিন্ন ট্রেডিং সিগন্যাল পরীক্ষা করতে দেয়।

  2. আপনি যদি জাপানি ইয়েন (জেপিই) অন্তর্ভুক্ত একটি মুদ্রা জোড়া পরীক্ষা করছেন, তাহলে JPYPAIR চেকবক্সটি চেক করে দেখুন কারণ এটি স্ক্রিপ্টটি স্টপ-লস এবং টেক-প্রফিট গণনা করে কিভাবে তা সামঞ্জস্য করে।

  3. আপনি স্ক্রিপ্টের পরামিতিগুলিতে লাভ (টিপি) এবং স্টপ লস (এসএল) মানগুলির জন্য অনুপাত পরিবর্তন করতে পারেন। 1.5: 1 অনুপাতের সাথে ভাল ফলাফল পাওয়া যায়।

  4. স্ক্রিপ্টটি অন্যান্যের মধ্যে টেনকান / কিজুন, মূল্য / কিজুন এবং মূল্য / টেনকান এর মতো সংকেত ইনপুটগুলির জন্য ইচিমোকু ক্লাউড গণনা ব্যবহার করে। আপনার পছন্দ অনুসারে, স্ক্রিপ্টটি সংশ্লিষ্ট ট্রেডিং সংকেত সরবরাহ করবে।

  5. ইচিমোকু মেঘগুলি ডনচিয়ান ফাংশন ব্যবহার করে প্লট করা হয় এবং ইনপুট মেনু থেকে আপনার নির্বাচনের উপর ভিত্তি করে যখন মূল্য রূপান্তর লাইন, বেস লাইন, কুমো উচ্চ বা কুমো নিম্নের উপরে বা নীচে অতিক্রম করে তখন সংকেত উত্পন্ন হয়।

  6. এই স্ক্রিপ্টে লং এবং শর্ট ট্রেড এন্ট্রি করার শর্তও রয়েছে।

  7. এটি অর্থ পরিচালনার জন্য গড় সত্য পরিসীমা (এটিআর) ব্যবহার করে, স্টপ লস এবং লাভের জন্য মাল্টিপ্লায়ার ব্যবহার করে যা সামঞ্জস্য করা যায়।

  8. উপরন্তু, পরীক্ষার সময় জন্য একটি ফিল্টার আছে, আপনি অতীতে কত বছর নির্দিষ্ট করতে পারবেন আপনি কৌশল পরীক্ষা করতে চান।

  9. অবশেষে, কৌশলটি অব্যাহত সংকেত এবং লাভ এবং ক্ষতির জন্য ATR মানগুলির উপর ভিত্তি করে একটি বাণিজ্য প্রবেশ বা প্রস্থান করার জন্য সেট করা হয়।

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-21 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/
// © vuagnouxb

//@version=4
strategy("BV's ICHIMOKU CLOUD SIGNAL TESTER", overlay=true)


// Signal imputs 
signalChoice = input(title = "SIGNAL - Choose your signal", defval = "Tenkan/Kijun", options = ["Tenkan/Kijun", "Tenkan/Kijun+Kumo", "Price/Tenkan", "Price/Tenkan+Kumo", "Price/Kijun", "Price/Kijun+Kumo", "Price/Kumo", "Kumo Color"])
JPYPair = input(type = input.bool, title = "ATR - Check if JPY Pair ", defval = false)


//------------------------------------------------------------------------
//----------               ICHIMOKU CLOUD Calculation          ----------- INPUT
//------------------------------------------------------------------------

conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement + 1, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement - 1, color=color.green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement - 1, color=color.red,
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red)

kumoHigh = max(leadLine1[displacement-1], leadLine2[displacement-1])
kumoLow = min(leadLine1[displacement-1], leadLine2[displacement-1])

// -- Trade entry signals

continuationSignalLong = signalChoice == "Tenkan/Kijun" ? crossover(conversionLine, baseLine) :
   signalChoice == "Tenkan/Kijun+Kumo" ? crossover(conversionLine, baseLine) and close > kumoHigh : 
   signalChoice == "Price/Tenkan" ? crossover(close, conversionLine) : 
   signalChoice == "Price/Tenkan+Kumo" ? crossover(close, conversionLine) and close > kumoHigh :
   signalChoice == "Price/Kijun" ? crossover(close, baseLine) :
   signalChoice == "Price/Kijun+Kumo" ? crossover(close, baseLine) and close > kumoHigh : 
   signalChoice == "Price/Kumo" ? crossover(close, kumoHigh) :
   signalChoice == "Kumo Color" ? crossover(leadLine1, leadLine2) :
   false
   
continuationSignalShort = signalChoice == "Tenkan/Kijun" ? crossunder(conversionLine, baseLine) :
   signalChoice == "Tenkan/Kijun+Kumo" ? crossunder(conversionLine, baseLine) and close < kumoLow : 
   signalChoice == "Price/Tenkan" ? crossunder(close, conversionLine) : 
   signalChoice == "Price/Tenkan+Kumo" ? crossunder(close, conversionLine) and close < kumoLow :
   signalChoice == "Price/Kijun" ? crossunder(close, baseLine) :
   signalChoice == "Price/Kijun+Kumo" ? crossunder(close, baseLine) and close < kumoLow : 
   signalChoice == "Price/Kumo" ? crossunder(close, kumoLow) :
   signalChoice == "Kumo Color" ? crossunder(leadLine1, leadLine2) :
   false

longCondition = continuationSignalLong

shortCondition = continuationSignalShort

//------------------------------------------------------------------------
//----------             ATR MONEY MANAGEMENT                 ------------
//------------------------------------------------------------------------

SLmultiplier = input(title = "ATR - Stop Loss Multiplier", type = input.float, defval = 1.5, step = 0.1)
TPmultiplier = input(title = "ATR - Take Profit Multiplier", type = input.float, defval = 1.0, step = 0.1)

pipAdjuster = JPYPair ? 1000 : 100000

ATR = atr(14) * pipAdjuster // 1000 for jpy pairs : 100000
SL = ATR * SLmultiplier
TP = ATR * TPmultiplier

//------------------------------------------------------------------------
//----------                  TIME FILTER                     ------------
//------------------------------------------------------------------------

YearOfTesting = input(title = "Time - How many years of testing ?" , type = input.integer, defval = 3)

_time = 2020 - YearOfTesting

timeFilter = (year > _time) 

//------------------------------------------------------------------------
//---------                 ENTRY FUNCTIONS                    ----------- INPUT
//------------------------------------------------------------------------

if (longCondition and timeFilter)  
    strategy.entry("Long", strategy.long)

if (shortCondition and timeFilter) 
    strategy.entry("Short", strategy.short)
    
//------------------------------------------------------------------------
//---------                 EXIT  FUNCTIONS                    -----------
//------------------------------------------------------------------------


strategy.exit("ATR", from_entry = "Long", profit = TP, loss = SL)  

strategy.exit("ATR", from_entry = "Short", profit = TP, loss = SL)  

আরো