बीवी का इचिमोकू क्लाउड - सभी संकेत

लेखक:चाओझांग, दिनांक: 2023-09-08 16:18:04
टैगः

यह स्क्रिप्ट व्यापार के लिए Ichimoku क्लाउड प्रणाली के लिए एक रणनीति है। यहाँ यह कैसे काम करता हैः

  1. स्क्रिप्ट आपको इचिमोकू क्लाउड सिस्टम द्वारा पेश किए गए विभिन्न प्रकार के ट्रेडिंग संकेतों का परीक्षण करने की अनुमति देती है।

  2. यदि आप एक मुद्रा जोड़ी का परीक्षण कर रहे हैं जिसमें जापानी येन (JPY) शामिल है, तो JPYPAIR चेकबॉक्स को चेक करना सुनिश्चित करें क्योंकि यह स्क्रिप्ट स्टॉप-लॉस और टेक-प्रॉफिट की गणना करने के तरीके को समायोजित करता है।

  3. आप स्क्रिप्ट के पैरामीटर में लाभ लेने (टीपी) और स्टॉप लॉस (एसएल) मानों के लिए अनुपात बदल सकते हैं। 1.5:1 अनुपात के साथ अच्छे परिणाम पाए जाते हैं।

  4. स्क्रिप्ट अन्य लोगों के बीच Tenkan/Kijun, Price/Kijun, और Price/Tenkan जैसे सिग्नल इनपुट के लिए Ichimoku Cloud गणना का उपयोग करती है। आपकी पसंद के आधार पर, स्क्रिप्ट संबंधित ट्रेडिंग सिग्नल प्रदान करेगी।

  5. इचिमोकू बादलों को डोंचियन फ़ंक्शन का उपयोग करके प्लॉट किया जाता है, और संकेत तब उत्पन्न होते हैं जब मूल्य इनपुट मेनू से आपके चयन के आधार पर रूपांतरण रेखा, आधार रेखा, कुमो उच्च या कुमो निम्न के ऊपर या नीचे पार करता है।

  6. स्क्रिप्ट में लंबी और छोटी ट्रेड प्रविष्टियों के लिए शर्तें भी शामिल हैं।

  7. यह धन प्रबंधन के लिए औसत वास्तविक सीमा (एटीआर) का उपयोग करता है, स्टॉप लॉस और ले लाभ के लिए गुणकों का उपयोग करता है जिन्हें समायोजित किया जा सकता है।

  8. इसके अतिरिक्त, परीक्षण समय के लिए एक फ़िल्टर है, जो आपको यह निर्दिष्ट करने की अनुमति देता है कि आप अतीत में कितने वर्षों में रणनीति का परीक्षण करना चाहते हैं।

  9. अंत में, रणनीति को जारी रखने के संकेतों और लाभ और हानि के लिए एटीआर मूल्यों के आधार पर व्यापार में प्रवेश या बाहर निकलने के लिए सेट किया गया है।

यह स्क्रिप्ट Ichimoku क्लाउड ट्रेडिंग रणनीतियों को बैकटेस्ट करने के लिए एक उपयोगी उपकरण हो सकता है, लेकिन हमेशा की तरह, किसी को तर्क को समझने और अपने ज्ञान और आराम स्तर के आधार पर मापदंडों को समायोजित करने में समय बिताना चाहिए। इसके अलावा, बैकटेस्टिंग परिणाम केवल सांकेतिक हैं और भविष्य का प्रदर्शन भिन्न हो सकता है।


/*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)  

अधिक