BV کے ICHIMOKU بادل - تمام سگنل

مصنف:چاؤ ژانگ، تاریخ: 2023-09-08 16:18:04
ٹیگز:

یہ اسکرپٹ تجارت کے لئے Ichimoku کلاؤڈ سسٹم کے لئے ایک حکمت عملی ہے۔ یہ کیسے کام کرتا ہے:

  1. اسکرپٹ آپ کو Ichimoku کلاؤڈ سسٹم کی طرف سے پیش کردہ مختلف تجارتی سگنل کی جانچ کرنے کی اجازت دیتا ہے.

  2. اگر آپ کسی کرنسی کی جوڑی کی جانچ کر رہے ہیں جس میں جاپانی ین (JPY) شامل ہے، تو اس بات کو یقینی بنائیں کہ JPYPAIR چیک باکس کو چیک کریں کیونکہ یہ اسکرپٹ کو اسٹاپ نقصان اور منافع لینے کا حساب کیسے کرتا ہے کو ایڈجسٹ کرتا ہے۔

  3. آپ اسکرپٹ کے پیرامیٹرز میں منافع (TP) اور اسٹاپ نقصان (SL) کی اقدار کے تناسب کو تبدیل کرسکتے ہیں۔ 1.5: 1 تناسب کے ساتھ اچھے نتائج پائے جاتے ہیں۔

  4. اسکرپٹ میں سگنل ان پٹ جیسے ٹینکن / کیجون ، قیمت / کیجون ، اور قیمت / ٹینکن کے لئے ایچیموکو کلاؤڈ حساب کتاب کا استعمال کیا گیا ہے۔ آپ کی پسند پر منحصر ہے ، اسکرپٹ متعلقہ تجارتی سگنل فراہم کرے گا۔

  5. ایچیموکو بادلوں کو ڈونچیئن فنکشن کا استعمال کرتے ہوئے پلاٹ کیا جاتا ہے ، اور سگنل اس وقت پیدا ہوتے ہیں جب قیمت ان پٹ مینو سے آپ کے انتخاب کی بنیاد پر تبادلوں کی لائن ، بیس لائن ، کوکو ہائی یا کوکو لو کے اوپر یا نیچے عبور کرتی ہے۔

  6. اسکرپٹ میں طویل اور مختصر تجارتی اندراجات کی شرائط بھی شامل ہیں۔

  7. یہ پیسہ مینجمنٹ کے لئے اوسط حقیقی رینج (اے ٹی آر) کا استعمال کرتا ہے، سٹاپ نقصان اور منافع لینے کے لئے ضربوں کا استعمال کرتے ہوئے جو ایڈجسٹ کیا جا سکتا ہے.

  8. اس کے علاوہ، ٹیسٹنگ وقت کے لئے ایک فلٹر ہے، آپ کو آپ کی حکمت عملی کی جانچ کرنا چاہتے ہیں ماضی میں کتنے سال کی وضاحت کرنے کی اجازت دیتا ہے.

  9. آخر میں، حکمت عملی کو جاری رکھنے کے سگنل اور منافع اور نقصان کے لئے ATR اقدار پر مبنی تجارت میں داخل یا باہر نکلنے کے لئے مقرر کیا جاتا ہے.

یہ اسکرپٹ 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)  

مزید