حکمت عملی کے بعد سادہ رجحان


تخلیق کی تاریخ: 2023-09-14 18:01:07 آخر میں ترمیم کریں: 2023-09-14 18:01:07
کاپی: 0 کلکس کی تعداد: 645
1
پر توجہ دیں
1617
پیروکار

حکمت عملی کا اصول

اس حکمت عملی میں مارکیٹ کے رجحان کی سمت کی نشاندہی کرنے اور رجحان کے عمل کو ٹریک کرنے کے لئے مساوی لائن اشارے اور ہال وکر اشارے شامل ہیں۔

بنیادی لین دین کی منطق یہ ہے:

  1. میکینی متحرک اوسط کا حساب لگانا ، مارکیٹ کے مجموعی رجحان کی سمت کا تعین کرنا

  2. ہال منحنی اشارے کے ذریعے جانے والے مخصوص زیادہ سے زیادہ خالی سگنل

  3. سگنل کی توثیق کے لئے اختیاری معاون اشارے

  4. سٹاپ نقصان اور روک تھام کے اصولوں کے مطابق خطرے کے انتظام کے طریقہ کار کا تعین

  5. ہال وکر الٹ پلٹ وقت فلیش سٹاپ نقصان

یہ حکمت عملی رجحانات کی پیروی کے عمل کو آسان بناتی ہے ، جس کا مقصد مارکیٹ کی رفتار سے ملنے کے لئے میکانائزڈ سسٹم کا استعمال کرنا ہے ، اور انفرادی سوچ کے اثر کو کم کرنا ہے۔

اسٹریٹجک فوائد

  • اوسط لائن مجموعی سمت کا تعین کرتی ہے ، معاون اشارے منتخب کیے جاسکتے ہیں

  • ہال منحنی خطوط ایک واضح زیادہ سے زیادہ خالی سگنل پیدا

  • خطرے کے انتظام کو منظم کریں اور غلطیوں کو کم کریں

اسٹریٹجک رسک

  • پیرامیٹرز کی ترتیب اور فلٹرنگ کے حالات کو بہتر بنانے کی ضرورت ہے

  • رجحانات کی درستگی میں غیر یقینی صورتحال

  • ہال منحنی خطوط میں تاخیر سے غلط سگنل پیدا ہو سکتے ہیں

خلاصہ کریں۔

اس حکمت عملی کا مقصد مشینی نظام کے رجحانات سے ملنے اور آپریٹنگ عمل کو آسان بنانے کے لئے ہے۔ تاہم ، پیرامیٹرز کی اصلاح اور اشارے کی پابندی کو استحکام کو بہتر بنانے کے لئے دھیان میں رکھنا چاہئے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Milleman
//@version=4
strategy("Millebot", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.04)

// Risk management settings
Spacer2 = input(false, title="=== Risk management settings ===")
Risk = input(1.0, title="% Risk")/100
RRR = input(2,title="Risk Reward Ratio",step=0.1,minval=0,maxval=20)
SL = input(5,title="StopLoss %",step=0.25)/100

// Baseline : McGinley Dynamic
Spacer3 = input(false, title="=== Baseline - Switch L/S ===")
McG_Source = input(close, title="McGinley source")
McG_length = input(50, title=" McG length", minval=1)
McG_LS_Switch = 0.0
McG_LS_Switch := na(McG_LS_Switch[1]) ? ema(McG_Source, McG_length) : McG_LS_Switch[1] + (McG_Source - McG_LS_Switch[1]) / (McG_length * pow(McG_Source/McG_LS_Switch[1], 4))

// Confirmation indicator
Spacer4 = input(false, title="=== Confirmation indicator ===")
C1_Act = input(false, title=" Confirmation indicator Activation")
C1_src = input(ohlc4, title="Source")
C1_len = input(5,title="Length")
C1 = sma(C1_src,C1_len)

// Entry indicator : Hull Moving Average
Spacer5 = input(false, title="=== Entry indicator configuration ===")
src = input(ohlc4, title="Source")
length = input(50,title="Length HMA")
HMA = ema(wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))),1)

//VARIABLES MANAGEMENT
TriggerPrice = 0.0, TriggerPrice := TriggerPrice[1]
TriggerxATR = 0.0, TriggerxATR := TriggerxATR[1]
SLPrice = 0.0, SLPrice := SLPrice[1], TPPrice = 0.0, TPPrice := TPPrice[1]
isLong = false, isLong := isLong[1], isShort = false, isShort := isShort[1]

//LOGIC
GoLong = crossover(HMA[0],HMA[1]) and strategy.position_size == 0.0 and (McG_LS_Switch/McG_LS_Switch[1] > 1) and (not C1_Act or C1>C1[1])
GoShort = crossunder(HMA[0],HMA[1]) and strategy.position_size == 0.0 and (McG_LS_Switch/McG_LS_Switch[1] < 1) and (not C1_Act or C1<C1[1])

//FRAMEWORK

//Long
if GoLong and not GoLong[1]
    isLong := true, TriggerPrice := close
    TPPrice := TriggerPrice * (1 + (SL * RRR))
    SLPrice := TriggerPrice * (1-SL)
    Entry_Contracts = strategy.equity * Risk / ((TriggerPrice-SLPrice)/TriggerPrice) / TriggerPrice //Het aantal contracts moet meegegeven worden. => budget * risk / %afstand tot SL / prijs = aantal contracts
    strategy.entry("Long", strategy.long, comment=tostring(round(TriggerxATR/TriggerPrice*1000)), qty=Entry_Contracts)
    strategy.exit("TPSL","Long", limit=TPPrice, stop=SLPrice, qty_percent = 100)
if isLong and crossunder(HMA[0],HMA[1])
    strategy.close_all(comment="TrendChange")
    isLong := false

//Short
if GoShort and not GoShort[1]
    isShort := true, TriggerPrice := close
    TPPrice := TriggerPrice * (1 - (SL * RRR))
    SLPrice := TriggerPrice * (1 + SL)
    Entry_Contracts = strategy.equity * Risk / ((SLPrice-TriggerPrice)/TriggerPrice) / TriggerPrice //Het aantal contracts moet meegegeven worden. => budget * risk / %afstand tot SL / prijs = aantal contracts
    strategy.entry("Short", strategy.short, comment=tostring(round(TriggerxATR/TriggerPrice*1000)), qty=Entry_Contracts)
    strategy.exit("TPSL","Short", limit=TPPrice, stop=SLPrice)//, qty_percent = 100)
if isShort and crossover(HMA[0],HMA[1])
    strategy.close_all(comment="TrendChange")
    isShort := false

//VISUALISATION
plot(McG_LS_Switch,color=color.blue,title="Baseline")
plot(C1_Act?C1:na,color=color.white,title="confirmation Indicator")
plot(HMA, color=(HMA[0]>HMA[1]? color.green : color.red), linewidth=4, transp=40, title="Entry Indicator")
plot(isLong or isShort ? TPPrice : na, title="TakeProfit", color=color.green, style=plot.style_linebr)
plot(isLong or isShort ? SLPrice : na, title="StopLoss", color=color.red, style=plot.style_linebr)
bgcolor(isLong[1] and cross(low,SLPrice) and low[1] > SLPrice ? color.yellow : na, transp=75, title="SL Long")
bgcolor(isShort[1] and cross(high,SLPrice) and high[1] < SLPrice ? color.yellow : na, transp=75, title="SL Short")