MT4 MT5 + متحرک متغیرات کے لئے ٹریڈنگ ویو انتباہات

مصنف:چاؤ ژانگ، تاریخ: 2022-05-24 16:59:00
ٹیگز:ایس ایم اےMT4MT5

اتفاق سے ، میں اوپن سورس منافع بخش فاریکس حکمت عملی شیئر کر رہا ہوں۔ اتفاق سے ، کیونکہ اس کا مقصد خالصتا educational تعلیمی مواد ہونا تھا۔ کچھ دن پہلے ٹریڈنگ ویو نے پائن اسکرپٹ سے متحرک اقدار کی ایک بہت ہی طاقتور خصوصیت جاری کی جس کی اب الرٹس میں گزرنے کی اجازت ہے۔ اور ٹریڈنگ کنیکٹر کی بدولت ، انہیں دنیا کے کسی بھی بروکر کے ایم ٹی 4 یا ایم ٹی 5 پلیٹ فارم میں فوری طور پر عملدرآمد کیا جاسکتا ہے۔ تو ہاں - ٹریڈنگ کنیکٹر انڈیکس اور اجناس کے ساتھ بھی کام کرتا ہے۔

اس EURUSD 6h حکمت عملی کا منطق بہت آسان ہے - یہ اسٹوکاسٹک کراس اوورز پر مبنی ہے جس میں اسٹاپ نقصان حالیہ محور نقطہ کے تحت طے ہوتا ہے۔ انتباہات میں متحرک اقدار کی اجازت کی بدولت جراحی کی درستگی کے ساتھ اسٹاپ نقصان کی ترتیب بالکل ممکن ہے۔ ان متحرک اقدار سے فائدہ اٹھانے کے لئے ٹریڈنگ کنیکٹر کو بھی اپ گریڈ کیا گیا ہے اور اب یہ پہلے سے حساب شدہ اسٹاپ نقصان ، منافع لینے کے ساتھ ساتھ اسٹاپ اور حد کے احکامات کے ساتھ تجارت کو انجام دینے کے قابل بناتا ہے۔

ٹریڈنگ کنیکٹر کی ایک اور تازہ خصوصیت ، صرف جزوی طور پر پوزیشنوں کو بند کرنا ہے - بشرطیکہ بروکر اس کی اجازت دے ، یقینا.۔ کسی پوزیشن کو اندراج کے وقت trade_id کی وضاحت کرنے کی ضرورت ہوتی ہے ، جس کا حوالہ جزوی بندش کے ساتھ مزید انتباہات میں دیا جاتا ہے۔ انتباہات کے نحو اور فعالیت کی تفصیلی تفصیلات ٹریڈنگ کنیکٹر کی ویب سائٹ پر مل سکتی ہیں۔ انتباہاتی پیغامات میں متحرک متغیرات کو شامل کرنے کا طریقہ انتباہ کی حالت میں اسکرپٹ کے آخر میں دیکھا جاسکتا ہے۔

اسٹریٹجی میں کمیشن کو بھی مدنظر رکھا گیا ہے۔

Slippage کو جان بوجھ کر 0 پر چھوڑ دیا جاتا ہے۔ ٹریڈنگ کنیکٹر کے 1 سیکنڈ سے کم ترسیل کے وقت کی وجہ سے ، slippage عملی طور پر غیر موجود ہے۔ یہ خاص طور پر اس صورت میں حاصل کیا جاسکتا ہے جب آپ VPS سرور استعمال کررہے ہو ، جو آپ کے بروکرز کے سرورز کے ساتھ ہی ڈیٹا سینٹر میں ہوسٹ کیا گیا ہو۔ میں اس طرح کا سیٹ اپ استعمال کر رہا ہوں ، یہ قابل عمل ہے۔ چھوٹا سلائپ اور پھیلاؤ پہلے ہی کمیشن کی قیمت میں شامل ہے۔

یہ حکمت عملی NON-REPAINTING ہے اور NO TRAILING-STOP یا کسی بھی دوسری خصوصیت کا استعمال کرتی ہے جو ٹریڈنگ ویو بیک ٹیسٹر میں ناقص معلوم ہوتی ہے۔ کیا یہ اس حکمت عملی کو گولیوں سے محفوظ اور 100٪ کامیابی کی ضمانت دیتا ہے؟ جہنم نہیں! بیک ٹیسٹنگ کا نمبر 1 اصول یاد رکھیں - اس سے کوئی فرق نہیں پڑتا ہے کہ اسکرپٹ کتنا منافع بخش اور اچھا لگ رہا ہے ، یہ صرف ماضی کے بارے میں بتاتا ہے۔ اسی حکمت عملی کو مستقبل میں اسی طرح کے نتائج ملنے کی صفر ضمانت ہے۔

اس اسکرپٹ کو مطالعہ میں تبدیل کرنے کے لئے تاکہ انتباہات تیار کیے جاسکیں ، 2 کام کریں:

  1. تبصرہ اسٹریٹیجی لائن شروع میں اور غیر تبصرہ مطالعہ لائن
  2. تبصرے کی لائن 54-59 اور تبصرہ نہ کرنے کی لائن 62-65. پھر اسکرپٹ کو چارٹ میں شامل کریں اور انتباہات کو ترتیب دیں.

یہ سکرپٹ صرف تعلیمی مقاصد کے لئے بنایا گیا تھا.

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

شکریہ @LucF اور @a.tesla2018 مجھے کوڈ کی اصلاحات کے ساتھ مدد کرنے کے لئے :)

بیک ٹسٹ

img


/*backtest
start: 2022-04-23 00:00:00
end: 2022-05-22 23:59:00
period: 15m
basePeriod: 5m
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/
// © Peter_O

//@version=5
strategy(title='TradingView Alerts to MT4 MT5 Strategy example', commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=false, default_qty_value=100000, initial_capital=1000)
//study(title="TradingView Alerts to MT4 MT5 Strategy example")  //uncomment this line and comment previous one to make it a study producing alerts
//
// This script was created for educational purposes only.
// It is showing how to use dynamic variables in TradingView alerts.
// And how to execute them in Forex, indices and commodities markets

TakeProfitDistance = input(400)
TakePartialProfitDistance = input(150)

// **** Entries logic **** {
periodK = input.int(13, title='K', minval=1)
periodD = input.int(3, title='D', minval=1)
smoothK = input.int(4, title='Smooth', minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
plot(k, title='%K', color=color.new(color.blue, 0))
plot(d, title='%D', color=color.new(color.orange, 0))
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=color.new(color.purple, 75))

GoLong = ta.crossover(k, d) and k < 80
GoShort = ta.crossunder(k, d) and k > 20
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = ta.pivothigh(high, 1, 1)
piv_low = ta.pivotlow(low, 1, 1)
var float stoploss_long = low
var float stoploss_short = high

pl = ta.valuewhen(piv_low, piv_low, 0)
ph = ta.valuewhen(piv_high, piv_high, 0)

if GoLong
    stoploss_long := low < pl ? low : pl
    stoploss_long
if GoShort
    stoploss_short := high > ph ? high : ph
    stoploss_short
// } End of Pivot-points and stop-loss logic

strategy.entry('Long', strategy.long, when=GoLong)
strategy.exit('XPartLong', from_entry='Long', qty_percent=50, profit=TakePartialProfitDistance)
strategy.exit('XLong', from_entry='Long', stop=stoploss_long, profit=TakeProfitDistance)
strategy.entry('Short', strategy.short, when=GoShort)
strategy.exit('XPartShort', from_entry='Short', qty_percent=50, profit=TakePartialProfitDistance)
strategy.exit('XShort', from_entry='Short', stop=stoploss_short, profit=TakeProfitDistance)

if GoLong
    alertsyntax_golong = 'long slprice=' + str.tostring(stoploss_long) + ' tp1=' + str.tostring(TakePartialProfitDistance) + ' part1=0.5 tp=' + str.tostring(TakeProfitDistance)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort = 'short slprice=' + str.tostring(stoploss_short) + ' tp1=' + str.tostring(TakePartialProfitDistance) + ' part1=0.5 tp=' + str.tostring(TakeProfitDistance)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)


if GoLong
    strategy.entry("Enter Long", strategy.long)
else if GoShort
    strategy.entry("Enter Short", strategy.short)

متعلقہ

مزید