
اس حکمت عملی میں میک ، آر ایس آئی ، پی ایس اے آر اور دیگر متعدد تکنیکی اشارے اور متحرک فنڈ مینجمنٹ اصولوں کا استعمال کیا گیا ہے ، جس میں ایک سے زیادہ ٹائم فریم کے تحت رجحانات کی پیروی اور الٹ تجارت کی اجازت دی گئی ہے۔ اس حکمت عملی کو مختصر ، درمیانی اور طویل فاصلے پر تجارت کے لئے استعمال کیا جاسکتا ہے۔
حکمت عملی پی ایس اے آر اشارے کا استعمال کرتے ہوئے رجحان کی سمت کا تعین کرتی ہے۔ ای ایم اے تیز رفتار لائن اور بی بی کی درمیانی لائن کو پہلی تصدیق کے طور پر۔ MACD کالم گراف کی سمت کو دوسری تصدیق کے طور پر۔ آر ایس آئی نے خرید و فروخت کے علاقے کو تیسری تصدیق کے طور پر استعمال کیا ہے۔ مندرجہ بالا شرائط کو پورا کرتے وقت تجارتی سگنل پیدا کریں۔
داخلے کے بعد اسٹاپ نقصان کی حد مقرر کریں۔ اسٹاپ نقصان کی حد ATR قدر کے ایک خاص ضرب سے طے کی گئی ہے۔ اسٹاپ نقصان کی مساوات۔ اس کے ساتھ ساتھ فلوٹنگ نقصان کی فیصد اسٹاپ نقصان بھی طے کی گئی ہے۔ جب نقصان اکاؤنٹ کے مجموعی منافع کا ایک خاص تناسب تک پہنچ جاتا ہے تو اسٹاپ نقصان کا آغاز ہوتا ہے۔
فاریکس میں فیصد کی ترتیب بھی ہے۔ جب منافع اکاؤنٹ کے کل حصص کا ایک خاص تناسب تک پہنچ جاتا ہے تو کھیل ختم ہوجاتا ہے۔
متحرک فنڈ مینجمنٹ پوزیشن کا سائز اکاؤنٹ کے مجموعی استحکام ، اے ٹی آر ، اور سیٹ اسٹاپ نقصان کے ضارب پر مبنی ہے۔ اس کے ساتھ ہی کم سے کم تجارت کا حجم بھی طے کیا گیا ہے۔
ملٹی فیکٹر تصدیق ، جعلی دراندازی سے بچنے اور داخلے کی درستگی کو بہتر بنانے کے لئے۔
متحرک فنڈ مینجمنٹ انفرادی خطرے کو کنٹرول کرتی ہے اور اکاؤنٹ کو مؤثر طریقے سے محفوظ کرتی ہے۔
اسٹاپ نقصان کی روک تھام کا مقام اے ٹی آر کی ترتیب کے مطابق ہے ، جو مارکیٹ میں اتار چڑھاؤ کی سطح کے مطابق ایڈجسٹ کیا جاسکتا ہے۔
منافع کو لاک کرنے کے لئے فی صد فلوٹ اور فلوٹ سیٹ کریں اور واپسی سے بچیں.
کثیر عنصر کے مجموعے میں تجارت کے کچھ مواقع ضائع ہو سکتے ہیں۔
اس کے نتیجے میں، آپ کو زیادہ سے زیادہ منافع حاصل کرنے کی ضرورت ہے.
اے ٹی آر کی غلط ترتیب سے اسٹاپ نقصان کی روک تھام بہت زیادہ نرمی یا انتہائی شدت اختیار کر سکتی ہے۔
غیر مناسب فنڈ مینجمنٹ کی ترتیبات سے ایک ہی پوزیشن میں بہت زیادہ اضافہ ہوسکتا ہے۔
انٹری فیکٹر وزن کو ایڈجسٹ کریں ، سگنل کی درستگی کو بہتر بنائیں
بہترین مجموعہ تلاش کرنے کے لئے مختلف فیصد پیرامیٹرز کی ترتیبات کی جانچ کریں۔
مختلف اقسام کی خصوصیات کے مطابق مناسب اے ٹی آر ضارب کا انتخاب کریں۔
فنڈ مینجمنٹ پیرامیٹرز کو ردعمل کے نتائج کے مطابق متحرک طور پر ایڈجسٹ کریں۔
ٹائم سیٹ اپ کو بہتر بنائیں اور ٹرانزیکشنز کو آزمائیں۔
اس حکمت عملی میں متعدد تکنیکی اشارے کا استعمال کیا گیا ہے تاکہ رجحانات کا اندازہ لگایا جاسکے ، متحرک فنڈ مینجمنٹ کنٹرول رسک کو شامل کیا جاسکے ، اور کثیر وقت کے فریم ورک میں مستحکم منافع حاصل کیا جاسکے۔ اس کے نتیجے میں بہتر نتائج حاصل کرنے کے لئے ، فیکٹر ویٹ ، رسک کنٹرول پیرامیٹرز اور فنڈ مینجمنٹ کی ترتیبات کو بہتر بنانے کے لئے فاریکس ٹریڈنگ کیا ہے؟ کے نتائج کے مطابق بہتر نتائج حاصل کیے جاسکتے ہیں۔
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 10m
basePeriod: 1m
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/
// © SoftKill21
//@version=4
strategy("EURUSD 1min strat RISK %% ", overlay=false, initial_capital = 1000)
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 6, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1500","0500-1600")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")
//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0
london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
//
// rsi
length = input( 5 )
overSold = input( 23 )
overBought = input( 72 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
// macd
fast_length_macd = input(title="Fast Length", type=input.integer, defval=12)
slow_length_macd = input(title="Slow Length", type=input.integer, defval=26)
src_macd = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src_macd, fast_length_macd) : ema(src_macd, fast_length_macd)
slow_ma = sma_source ? sma(src_macd, slow_length_macd) : ema(src_macd, slow_length_macd)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
// sar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
//plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
//plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
//bb
length_bb = input(17, minval=1)
src_bb = input(close, title="Source")
mult_bb = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis_bb = sma(src_bb, length_bb)
dev_bb = mult_bb * stdev(src_bb, length_bb)
upper_bb = basis_bb + dev_bb
lower_bb = basis_bb - dev_bb
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
//plot(basis_bb, "Basis", color=#872323, offset = offset)
//p1_bb = plot(upper_bb, "Upper", color=color.teal, offset = offset)
//p2_bb = plot(lower_bb, "Lower", color=color.teal, offset = offset)
//fill(p1_bb, p2_bb, title = "Background", color=#198787, transp=95)
//ema
len_ema = input(10, minval=1, title="Length")
src_ema = input(close, title="Source")
offset_ema = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out_ema = ema(src_ema, len_ema)
//plot(out_ema, title="EMA", color=color.blue, offset=offset_ema)
//out_ema e emaul
//basis_bb e middle de la bb
//hist e histograma
// rsi cu band0 cross pt rsi
// confirmarea
shortCondition = (uptrend==false and crossunder(ema(src_ema, len_ema),sma(src_bb, length_bb)) and hist < 0 and vrsi < overSold) //and time_cond
longCondition = (uptrend==true and crossover(ema(src_ema, len_ema),sma(src_bb, length_bb)) and hist > 0 and vrsi > overBought ) //and time_cond
//tp=input(0.0025,type=input.float, title="tp")
//sl=input(0.001,type=input.float, title="sl")
//INDICATOR---------------------------------------------------------------------
//Average True Range (1. RISK)
atr_period = input(14, "Average True Range Period")
atr = atr(atr_period)
strategy.initial_capital = 50000
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit //floating profit/loss
risk = input(2,type=input.float,title="Risk %")/100 //risk % per trade
isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...")
equity_protector = input(1 ,type=input.float, title="Equity Protection %")/100 //equity protection %
equity_protectorTP = input(2 ,type=input.float, title="Equity TP %")/100 //equity protection %
multtp = input(5,type=input.float, title="multi atr tp")
multsl = input(5,type=input.float, title="multi atr sl")
stop = atr*100000*input(1,"SL X")* multsl //Stop level
if(isTwoDigit)
stop := stop/100
target = atr*100000*input(1,"TP X")*multtp //Stop level
//Calculate current DD and determine if stopout is necessary
equity_stopout = false
if(floating<0 and abs(floating/balance)>equity_protector)
equity_stopout := true
equity_stopout2 = false
if(floating>0 and abs(floating/balance)>equity_protectorTP)
equity_stopout2 := true
//Calculate the size of the next trade
temp01 = balance * risk //Risk in USD
temp02 = temp01/stop //Risk in lots
temp03 = temp02*100000 //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 10000)
size := 10000 //Set min. lot size
//TRADE EXECUTION---------------------------------------------------------------
strategy.close_all(equity_stopout, comment="equity sl", alert_message = "equity_sl") //Close all trades w/equity protector
//strategy.close_all(equity_stopout2, comment="equity tp", alert_message = "equity_tp") //Close all trades w/equity protector
is_open = strategy.opentrades > 0
strategy.entry("long",true,oca_name="a",when=longCondition and not is_open) //Long entry
strategy.entry("short",false,oca_name="a",when=shortCondition and not is_open) //Short entry
strategy.exit("exit_long","long",loss=stop, profit=target) //Long exit (stop loss)
strategy.close("long",when=shortCondition) //Long exit (exit condition)
strategy.exit("exit_short","short",loss=stop, profit=target) //Short exit (stop loss)
strategy.close("short",when=longCondition) //Short exit (exit condition)
//strategy.entry("long", strategy.long,size,when=longCondition , comment="long" , alert_message = "long")
//strategy.entry("short", strategy.short, size,when=shortCondition , comment="short" , alert_message = "short")
//strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, alert_message = "closeshort")
//strategy.exit("closelong", "long" ,size, profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "short" , size, profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")
//strategy.close("long" , when=not (time_cond), comment="time", alert_message = "closelong" )
//strategy.close("short" , when=not (time_cond), comment="time", alert_message = "closeshort")
//strategy.close_all(when=not (time_cond), comment ='time')