4
پر توجہ دیں
1076
پیروکار

FMZ PINE سکرپٹ دستاویزی

میں تخلیق کیا: 2022-05-06 14:27:06, تازہ کاری: 2025-01-23 10:19:06
comments   18
hits   13760

[TOC]

مطلوبہ الفاظ، گرامر، سیٹ اپ کی تفصیل

کوڈ کی ساخت

پائن میں کوڈ کی عمومی ساخت مندرجہ ذیل ہے:

<version>
<declaration_statement>
<code>

تبصرہ

ایف ایم زیڈ میں پائن زبان کی حمایت کے لئے نوٹ: ایک لائن نوٹ//کثیر سطر تبصرہ/* */مثال کے طور پر، ذیل میں مثال کے طور پر تبصرے لکھتے ہیں:

[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)  // 计算MACD指标

/*
plot函数在图表上画出指标线
*/
plot(macdLine, color = color.blue, title='macdLine')
plot(signalLine, color = color.orange, title='signalLine')
plot(histLine, color = color.red, title='histLine')

ورژن

مندرجہ ذیل فارمیٹ کی کمپائلر ہدایات کمپائلر کو بتاتی ہیں کہ اسکرپٹ کس ورژن کا پائن ہے:

//@version=5

پہلے سے طے شدہ v5 ورژن، کوڈ میں خارج کر دیا جا سکتا ہے//@version=5

بیان بیان

  • indicator()
  • strategy()

بیان بیانات اسکرپٹ کی قسم کی وضاحت کرتے ہیں ، جو اس کے نتیجے میں فیصلہ کرتا ہے کہ اس میں کیا مواد کی اجازت ہے ، اور اسے کس طرح استعمال اور عملدرآمد کیا جائے گا۔ اسکرپٹ کی اہم صفات ، جیسے اس کا نام ، جب اسے چارٹ میں شامل کیا جائے گا تو وہ کہاں ظاہر ہوگا ، اس کی نمبروں کی درستگی اور فارمیٹ ، اور اس کے چلانے کے دوران کچھ طرز عمل کو منظم کرنے کے لئے ، جیسے کہ چارٹ میں دکھائے جانے والے زیادہ سے زیادہ ڈرائنگ آبجیکٹ کی تعداد۔ حکمت عملی کے لئے ، صفات میں پیمائش کے پیرامیٹرز شامل ہیں جیسے ابتدائی سرمایہ ، کمیشن ، سلائڈ پوائنٹس وغیرہ۔indicator()یاstrategy()بیان بیان:

کوڈ

اسکرپٹ میں جو لائن تبصرہ یا کمپلیٹر ہدایات نہیں ہے وہ بیانات ہیں ، جو اسکرپٹ کے الگورتھم کو نافذ کرتی ہیں۔ ایک بیان ان میں سے ایک ہوسکتا ہے۔

  • متغیر کا بیان
  • متغیرات کو دوبارہ تفویض کرنا
  • فنکشن کا اعلان
  • بلٹ ان فنکشن کال ، صارف کی وضاحت شدہ فنکشن کال
  • ifforwhileیاswitchہم آہنگی کی ساخت

جملوں کو کئی طرح سے ترتیب دیا جا سکتا ہے

  • کچھ جملے ایک لائن میں ظاہر کیے جا سکتے ہیں، جیسے کہ زیادہ تر متغیرات کے بیانات، جن میں صرف ایک فنکشن کال کی لائن ہوتی ہے یا ایک لائن فنکشن کے بیانات۔ دیگر، جیسے ڈھانچے، ہمیشہ ایک سے زیادہ لائنوں کی ضرورت ہوتی ہے، کیونکہ انہیں ایک مقامی بلاک کی ضرورت ہوتی ہے۔
  • اسکرپٹ کے عالمی سطح پر بیانات (یعنی اس حصے جو مقامی بلاک سے باہر ہے) کو اس طرح نہیں سمجھا جاسکتا ہے空格یا制表符(ٹیب بٹن) شروع کریں۔ ان کا پہلا حرف بھی اس لائن کا پہلا حرف ہونا چاہیے۔ لائنوں میں پہلی پوزیشن پر شروع ہونے والی لائنیں ، تعریف کے مطابق اسکرپٹ کی عالمی حدود کا حصہ بن جاتی ہیں۔
  • ایک ساخت یا ایک کثیر سطر تقریب کا اعلان ہمیشہ ایک کی ضرورت ہوتی ہےlocal blockایک مقامی بلاک کو ایک میٹرک یا چار خالی جگہوں میں سکریپ کرنا ہوگا (بغیر اس کے ، اس کو پچھلی لائن کے سلسلہ وار کوڈ کے طور پر تجزیہ کیا جائے گا ، یعنی اس کو پچھلی لائن کے کوڈ کا تسلسل سمجھا جائے گا) ، ہر مقامی بلاک ایک مختلف مقامی دائرہ کار کی وضاحت کرتا ہے۔
  • ایک سے زیادہ ایک لائن کے جملے کو ایک قطار میں سیریل کیا جا سکتا ہے اور اس کے لئے کوما ((,) استعمال کیا جا سکتا ہے۔
  • ایک سطر میں تبصرہ ہو سکتا ہے یا صرف تبصرہ۔
  • لائنیں بھی لپیٹ دی جا سکتی ہیں ((متعدد لائنوں پر جاری رکھیں))

مثال کے طور پر، تین مقامی بلاکس پر مشتمل ہے، ایک اپنی مرضی کے مطابق فنکشن کے بیان میں، دو متغیر کے بیان میں if ڈھانچے کا استعمال کرتے ہوئے، مندرجہ ذیل کوڈ:

indicator("", "", true)             // 声明语句(全局范围),可以省略不写

barIsUp() =>                        // 函数声明(全局范围)
    close > open                    // 本地块(本地范围)

plotColor = if barIsUp()            // 变量声明 (全局范围)
    color.green                     // 本地块 (本地范围)
else
    color.red                       // 本地块 (本地范围)

runtime.log("color", color = plotColor)  // 调用一个内置函数输出日志 (全局范围)

کوڈ تبدیل کریں

لمبی لائنوں کو ایک سے زیادہ لائنوں میں تقسیم کیا جاسکتا ہے ، یا ان کو “لپیٹ” کیا جاسکتا ہے۔ لپیٹ والی لائنوں کو کسی بھی تعداد میں خالی جگہوں میں سکڑنا چاہئے ، بشرطیکہ یہ 4 کا ضرب نہ ہو۔ (یہ حدود مقامی بلاک میں سکڑنے کے لئے استعمال کی جاتی ہیں) ۔

a = open + high + low + close

اس کے علاوہ ، یہ بھی ممکن ہے کہ اس کو پیکیج کیا جا سکے (نوٹ کریں کہ ہر لائن میں گھومنے والی خالی جگہوں کی تعداد 4 کے ضرب نہیں ہے):

a = open +
      high +
          low +
             close

ایک طویل پلاٹ ((() کال کو پیکیج کیا جاسکتا ہے۔

close1 = request.security(syminfo.tickerid, "D", close)      // syminfo.tickerid 当前交易对的日线级别收盘价数据系列
close2 = request.security(syminfo.tickerid, "240", close)    // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列
plot(ta.correlation(close, open, 100),                       // 一行长的plot()调用可以被包装
   color = color.new(color.purple, 40),
   style = plot.style_area,
   trackprice = true)

صارف کی وضاحت کردہ فنکشن کے بیانات میں بیانات کو بھی پیک کیا جاسکتا ہے۔ تاہم ، چونکہ مقامی بلاک کو نحوی طور پر کم سے کم کے ساتھ شروع کرنا ہوگا ((4 خالی جگہوں یا 1 تخلیق کار) ، جب اسے اگلی سطر میں تقسیم کیا جائے تو ، بیان کے جاری حصے کو ایک سے زیادہ کم سے کم کے ساتھ شروع کرنا ہوگا ((جس کا ضرب 4 خالی جگہوں کے برابر نہیں ہے) ۔ مثال کے طور پر:

test(c, o) =>
    ret = c > o ?
       (c > o+5000 ? 
          1 :
              0):
       (c < o-5000 ? 
          -1 : 
              0)

a = test(close, open)
plot(a, title="a")

ٹائم سیریز

ٹائم سیریز ایک ڈیٹا ٹائپ یا فارمیٹ نہیں ہے۔ ٹائم سیریز زبان میں ایک بنیادی ڈھانچہ کا تصور ہے۔ یہ وقت کے ساتھ مسلسل بدلتی ہوئی اقدار کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے ، اور ہر قدر ایک وقت کے نقطہ سے متعلق ہے۔ ٹائم سیریز اس تصور کی ساخت کو وقت کے ساتھ تبدیل ہونے والے اعداد و شمار کی ایک سیریز کو سنبھالنے اور ریکارڈ کرنے کے لئے موزوں ہے۔ بلٹ میں متغیراتopenمثال:openبلٹ ان متغیر ہر K لائن BAR کے لئے کھلنے کی قیمت کو ریکارڈ کرتا ہے، اگر یہopen5 منٹ کے K لائن دورانیے کے لئے اعداد و شمار ہے.openمتغیر میں ریکارڈ کیا جاتا ہے کہ ہر 5 منٹ کے لئے K لائن BAR ((کالم) کے لئے کھلنے کی قیمت. جب آپ کی حکمت عملی کا پروگرام چل رہا ہے تو کوڈ میں حوالہ دیا جاتا ہےopenیعنی موجودہ K لائن BAR کی افتتاحی قیمت کا حوالہ دیا گیا ہے۔ ٹائم سیریز میں پچھلی قیمت کا حوالہ دینے کے لئے ((ماضی کی قیمت) ، ہم استعمال کرتے ہیں[]تاریخ آپریٹر، جب حکمت عملی کسی K لائن BAR پر عملدرآمد کی جاتی ہے،open[1]اس کا مطلب یہ ہے کہ موجودہ K لائن BAR کے پچھلے K لائن BAR کی افتتاحی قیمت کا حوالہ دیا گیا ہے۔

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

PINE زبان اس طرح سے ڈیزائن کی گئی ٹائم سیریز، حکمت عملی کے کوڈ میں آسانی سے اختتامی قیمت کی مجموعی قدر کا حساب لگاسکتی ہے، اور اسے for جیسے لوپ ڈھانچے کا استعمال کرنے کی ضرورت نہیں ہے، صرف PINE زبان کا استعمال کرتے ہوئے بلٹ ان فنکشن استعمال کریںta.cum(close)ایک اور مثال کے طور پر، ہمیں آخری 14 K لائنوں BAR ((یعنی کوڈ کو چلانے کے وقت موجودہ لمحے سے قریب ترین 14 K لائنوں BAR) کی زیادہ سے زیادہ قیمت اور کم سے کم قیمت کے فرق کی اوسط قیمتوں کا حساب لگانے کی ضرورت ہے۔ta.sma(high - low, 14)

ٹائم سیریز پر فنکشن کو کال کرنے کے نتائج بھی ٹائم سیریز پر نشانات چھوڑتے ہیں ، اسی طرح استعمال کیا جاسکتا ہے[]تاریخی آپریٹر حوالہ سے پہلے کی قیمتوں کا۔ مثال کے طور پر ، یہ جانچنے کے لئے کہ کیا موجودہ K لائن BAR کی اختتامی قیمت آخری 10 K لائن BAR میں سب سے زیادہ قیمت کی زیادہ سے زیادہ قیمت سے زیادہ ہے ((موجودہ K لائن BAR کو چھوڑ کر) ۔ ہم لکھ سکتے ہیںbreach = close > ta.highest(close, 10)[1]یہ بھی لکھا جا سکتا ہے:breach = close > ta.highest(close[1], 10)تو؟ta.highest(close, 10)[1]اورta.highest(close[1], 10)یہ برابر ہے۔

اس کوڈ کے ساتھ تصدیق کی جا سکتی ہے:

strategy("test pine", "test", true) 

a = ta.highest(close, 10)[1]
b = ta.highest(close[1], 10)

plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red)
plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)

مندرجہ بالا ٹیسٹ کوڈ a اور b کو ہر BAR پر ان کے متعلقہ ٹائم سیریز پر آؤٹ پٹ کرے گا ، اور یہ دیکھا جاسکتا ہے کہ a اور b کی قیمتیں ہمیشہ برابر رہتی ہیں ، لہذا یہ دونوں نمائندگی کے طریقے برابر ہیں۔

تاریخی اعداد و شمار کا حوالہ (history-referencing)

ٹریڈنگ ویو پر تاریخی اعداد و شمار کے حوالہ جات کے لئے زیادہ سے زیادہ آرٹیکل کی حد ہے ((زیادہ سے زیادہ 5000 آرٹیکلز) ، مثال کے طور پر مندرجہ ذیل کوڈ:

//@version=6
indicator("test")

ema = ta.ema(close, 10000)      // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000.
plot(ema, "ema")

// pre10000 = ema[10000]        // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000.
// plot(pre10000, "pre10000")

ایف ایم زیڈ پر پائن زبان کی حکمت عملی کا استعمال کرتے ہوئے پائن زبان کے لین دین کے ذخیرے میں “لین دین کی ترتیبات” ، پیرامیٹر: “متغیر کی سب سے طویل مدت کی تعداد” مخصوص ترتیب میں قابل حوالہ اعداد و شمار کی زیادہ سے زیادہ شرائط

FMZ PINE سکرپٹ دستاویزی

indicator("test")

ema = ta.ema(close, 1000)  // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000.
plot(ema, "ema")

پیرامیٹر “متغیر کی سب سے طویل مدت” کو زیادہ بڑا نہیں ہونا چاہئے۔ مناسب حکمت عملی میں اعداد و شمار کے حوالہ جات کی گنجائش ہے۔

پائن لینگوئج ٹرانزیکشن کلاس بیس ماڈیول پیرامیٹرز

PINE حکمت عملی کے بلٹ ان سانچے “پائن زبان تجارت کلاس بیس” کے پیرامیٹرز کی ترتیب کی وضاحت

FMZ PINE سکرپٹ دستاویزی

ٹریڈنگ کی ترتیبات

  • پھانسی اختتامی قیمت کا ماڈل: موجودہ BAR ختم ہونے پر ماڈل پر عملدرآمد ، جب نچلے BAR شروع ہوتا ہے تو تجارت پر عملدرآمد ریئل ٹائم پرائس ماڈل: ہر بار قیمت میں تبدیلی کے ساتھ ماڈل پر عملدرآمد ، فوری طور پر تجارت پر عملدرآمد کے اشارے۔
  • پہلے سے طے شدہ پوزیشن کھولنے کی تعداد: اگر تجارتی ہدایت میں تجارت کی تعداد متعین نہیں کی گئی ہے تو ، اس ترتیب کے مطابق تجارت پر عملدرآمد کریں۔
  • زیادہ سے زیادہ ایک بار تجارت کے تحت ایک بار: اصل بندش کے مطابق ، اس پیرامیٹر کی ترتیب کے ساتھ مل کر ، ہر ایک آرڈر کی زیادہ سے زیادہ تعداد کا تعین کریں ، اور ڈسپلے کو جھٹکا دینے سے بچیں۔
  • قیمتوں میں کمی کے پوائنٹس:定价货币精度پیرامیٹرز اور اس پیرامیٹر کا تعین کرنے کے لئے سکریپنگ کی قیمت کے وقت. مثال کے طور پر ، قیمتوں کا تعین کرنسی کی درستگی 2 ہے ، یعنی کم سے کم اعداد کے دوسرے نمبر پر ، 0.01 تک درست ہے۔ پھر سکریپنگ پوائنٹس کی تعداد میں سے ہر ایک پوائنٹ قیمتوں کا تعین کرنے والے 0.01 یونٹ کی نمائندگی کرتا ہے۔ اس وقت سکریپنگ پوائنٹس کی تعداد 5 ہے ، اور سکریپنگ کی قیمت 0.05 ہے ((سکریپنگ کی قیمت اس حصے کی نشاندہی کرتی ہے جس کی قیمت میں اضافہ ہوتا ہے جو بہتر اور بند آرڈر کی ادائیگی کے لئے ہوتا ہے) ۔
  • متغیر کے سب سے طویل دورانیے کی تعداد: اثر گراف K لائن BAR کی تعداد، اورjavascriptحکمت عملی میں کال کریںSetMaxBarLenفنکشن ایک ہی ہے.

فیوچر کے اختیارات

  • قسم کا کوڈ: معاہدہ کا کوڈ ، تبادلے کے اعتراض کو غیر نقد تبادلے کے اعتراض کے طور پر سیٹ کرنے کی ضرورت ہے۔
  • کم سے کم معاہدے کی تعداد: جب آپ آرڈر دیتے ہیں تو ، معاہدے کی کم سے کم تجارت ہوتی ہے۔

حقیقی اختیارات

  • خود کار طریقے سے بحالی کی پیشرفت: پچھلی حکمت عملی کے رکنے سے پہلے کی حالت کو خود بخود بحال کریں۔
  • دوبارہ آرڈر کرنے کی کوشش کی تعداد: اگر آرڈر میں کوئی تبدیلی نہیں آتی ہے تو ، آرڈر کو منسوخ کردیا جائے گا اور تجارت کی کوشش کرنے کے لئے دوبارہ آرڈر کیا جائے گا۔ یہ پیرامیٹر زیادہ سے زیادہ دوبارہ کوششوں کو محدود کرنے کے لئے استعمال کیا جاتا ہے۔
  • نیٹ ورک سروے وقفہ ((میلی سیکنڈ): صرف REST پروٹوکول پر لاگو ہوتا ہے ، نیٹ ورک کی درخواست کے وقفے کو کنٹرول کرتا ہے ، درخواستوں سے بچنے کے لئے جو اکثر بار بار ہوتا ہے ، جو تبادلے کی حد سے تجاوز کرتا ہے۔
  • اکاؤنٹ کی ہم آہنگی کا وقت ((سیکنڈ): ہم آہنگی اکاؤنٹ کے اعداد و شمار کا وقت کی مدت。
  • پوزیشن کھولنے کے بعد پوزیشن کی ہم آہنگی کا وقت ((میلی سیکنڈ): صرف کچھ تبادلے کے اعداد و شمار کی تاخیر کی وجہ سے بار بار پوزیشن کھولنے کے لئے ، ہم آہنگی کا وقت زیادہ سے زیادہ ترتیب دینے سے اس طرح کے مسائل کو کم کیا جاسکتا ہے۔
  • لیورپول ضرب: لیورپول ضرب مقرر کریں۔

نقد تجارت، دیگر ترتیبات

  • ایک طرفہ ٹرانزیکشن کی مقدار: ڈیفالٹ ایک طرفہ ٹرانزیکشن کی مقدار ، صرف نقد رقم کے لئے موزوں ہے۔
  • کم سے کم ٹرانزیکشن: کم سے کم ٹرانزیکشن۔
  • قیمتوں کا تعین کرنے والی کرنسی کی درستگی: قیمت کی درستگی ، یعنی قیمت کا چھوٹا ہندسہ۔
  • ٹرانزیکشن قسم کی درستگی: اگلی آرڈر کی درستگی ، یعنی اگلی آرڈر کی چھوٹی سی ہندسہ۔
  • ہینڈلنگ فیس: اس ترتیب کے مطابق کچھ اعداد و شمار کا حساب لگایا گیا ہے، 0.002 کا مطلب ہے 2 ہزارواں۔
  • نقصانات کے اعدادوشمار کے وقفے: صرف ڈسک ڈسپلے میں نقصانات کے اعدادوشمار کا استعمال کریں۔
  • دوبارہ کوشش کرنے میں ناکامی ((میلی سیکنڈ): نیٹ ورک کی درخواست ناکام ہونے پر دوبارہ کوشش کرنے کا وقفہ۔
  • ایجنٹ کا استعمال: صرف REST پروٹوکول کے لئے درست۔
  • عام نیٹ ورک کی غلطیوں کو چھپائیں: عام غلطیوں کو لاگ ان میں چھپائیں
  • سوئچ بیس ایڈریس: صرف REST پروٹوکول کے لئے موزوں۔
  • پیغامات بھیجنا: پیغامات کو میل باکس میں بھیجنا وغیرہ۔

آرڈر دیں۔

پوزیشن کھولیں

strategy(title = "open long example", pyramiding = 3)                                // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.01)                                         // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10))       // 条件触发,执行下单,市价开多仓
strategy.entry("long3", strategy.long, 0.03, limit = 30000)                          // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓

کھل پوزیشن

strategy(title = "close long example", pyramiding = 2)                              // pyramiding 允许的同方向下单的次数
strategy.entry("long1", strategy.long, 0.1)                                         // 市价开多仓,指定分组标签为long1
strategy.entry("long2", strategy.long, 0.1)                                         // 市价开多仓,指定分组标签为long2
strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%")   // 平仓,指定平掉分组标签为long1的仓位的50%持仓
strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%")   // 平仓,指定平掉分组标签为long2的仓位的80%持仓

ٹرانزیکشن

PINE زبان میں پوزیشن رکھنے کا طریقہ کار یک طرفہ پوزیشن رکھنے کے مشابہ ہے۔ مثال کے طور پر ، جب ایک ہی سمت میں پوزیشن رکھنے کی پوزیشن ہوتی ہے (مثال کے طور پر ، اگر آپ کے پاس فروخت کرنے کا آرڈر ، منصوبہ بندی کی فہرست ، وغیرہ ہے) پوزیشن رکھنے کی سمت کے مخالف سمت کے احکامات پر عمل درآمد ہوتا ہے ، تو اس وقت پہلے پوزیشن رکھنے والے پوزیشنوں کو ختم کردیا جائے گا (مثال کے طور پر ، تمام پوزیشنوں کو ختم کردیا جائے گا) ، اور پھر عمل درآمد کا حکم دیا جائے گا (مثال کے طور پر ، پوزیشن رکھنے سے پہلے پوزیشن رکھنے کی سمت کے مخالف سمت کے احکامات) ۔

منصوبہ بندی

آرڈر کرنے کی ہدایت کا استعمال کرتے ہوئے آرڈر کرتے وقت ، اگر کوئی قیمت متعین نہیں کی جاتی ہے تو ، بازار کی قیمت طے شدہ ہے۔ اس کے علاوہ ، مارکیٹ کی قیمت کے علاوہ ، منصوبہ بندی کی فہرست کے ذریعہ آرڈر کیا جاسکتا ہے ، اور یہ فوری طور پر آرڈر پر عمل نہیں کرے گا۔ منصوبہ بندی کی فہرست میں ، جس میں پروگرام موجود نہیں ہے جب اس کو متحرک کیا جاتا ہے ، اس میں شامل کیا جاسکتا ہےڈسک / ریٹرننگوقت کی حیثیت کی معلومات (یعنی حکمت عملی چلنے پر اسٹیٹس شیڈول) کے “منصوبہ آرڈر” کے شیڈول میں دیکھا گیا ہے۔ نظام صرف اس وقت آرڈر کرے گا جب مارکیٹ ریئل ٹائم قیمت کی شرائط کو پورا کرے۔strategy.entryجب ہم ایک فنکشن کو آرڈر کرتے ہیں تو ہم اس کی وضاحت کر سکتے ہیںlimitstopپیرامیٹرز

var isTrade = false 
if not barstate.ishistory and not isTrade
    isTrade := true 
    strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order")                     // stop
    strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order")                    // limit
    strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order")   // stop-limit    
  • حد آرڈر

ایک آرڈر کی حد مقرر کریں، جب آرڈر خریدنے کے لئے ہےdirectionپیرامیٹرز ہیں۔strategy.long), آرڈر صرف اس وقت ٹرگر ہوتا ہے جب مارکیٹ کی موجودہ قیمت اس قیمت سے کم ہو۔ جب آرڈر فروخت کے لئے ہےdirectionپیرامیٹرز ہیں۔strategy.short), صرف اس وقت جب مارکیٹ کی موجودہ قیمت اس قیمت سے زیادہ ہو تو آرڈر کو متحرک کیا جائے گا۔

  • آرڈر بند کرو

ایک آرڈر کی روک تھام کی قیمت مقرر کریں ، جب آرڈر خریدنے کے لئے ہے تو ، آرڈر صرف اس وقت متحرک ہوتا ہے جب مارکیٹ کی موجودہ قیمت اس قیمت سے زیادہ ہو۔ جب ایک آرڈر فروخت کے لئے ہوتا ہے تو ، آرڈر صرف اس وقت متحرک ہوتا ہے جب مارکیٹ کی موجودہ قیمت اس قیمت سے کم ہو۔

  • stop-limit آرڈر

ایک ہی وقت میں مقرر کیا جا سکتاlimitstopپیرامیٹرز، آرڈر سب سے پہلے قابل قدر قیمت پر ٹرگر ہوتا ہے۔

حقوق و مفادات کا فیصد

//@version=5
strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)  

// 简单的均线交叉策略
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))  

// 如果均线交叉条件满足,则买入或卖出
if (longCondition)
    strategy.entry("Long", strategy.long)  

if (shortCondition)
    strategy.entry("Short", strategy.short)
  

نامزدdefault_qty_type=strategy.percent_of_equityبعد، سیٹ اپdefault_qty_valueفی صد کی تعداد کے طور پر ((0 ~ 100) ، 1 یعنی 1٪۔ اکاؤنٹ میں پیمائش شدہ کرنسی کی تعداد کے مطابق آرڈر کی تعداد کا حساب لگائیں۔ مثال کے طور پر: موجودہ اکاؤنٹ میں 10000 USDT ہے ، 1٪ آرڈر ترتیب دیں ، یعنی 100 USDT پیمانے پر آرڈر کی مقدار کا استعمال کریں ((اس کی فروخت کے وقت موجودہ قیمت کے مطابق حساب لگائیں)

بیانات، منطقی ساخت کلیدی الفاظ

var

var تقسیم اور ایک بار شروع کرنے والی متغیرات کے لئے کلیدی لفظ ہے۔ عام طور پر ، کلیدی لفظ var کے بغیر متغیر تفویض کی نحو کا نتیجہ یہ ہوتا ہے کہ جب بھی ڈیٹا کو اپ ڈیٹ کیا جاتا ہے تو متغیر کی قدر کو ڈھانپ دیا جاتا ہے۔ اس کے برعکس ، جب کلیدی لفظ var کے ساتھ متغیرات تفویض کیے جاتے ہیں ، تو وہ اعداد و شمار کی تازہ کاری کے باوجود اسٹیٹ ٹیبل کو برقرار رکھ سکتے ہیں اور صرف اس صورت میں تبدیل کرسکتے ہیں جب وہ if-expressions میں شرائط کو پورا کریں۔

var variable_name = expression

وضاحت:

  • variable_name- پائن اسکرپٹ میں اجازت شدہ صارف متغیر کا کوئی بھی نام جس میں لاطینی حروف ، اعداد اور خطاطی شامل ہوسکتے ہیں_), لیکن نمبر سے شروع نہیں)
  • expression- کسی بھی ریاضیاتی اظہار ، جیسے باقاعدہ متغیر کی تعریف کریں۔ اظہار کا حساب لگائیں اور اسے متغیر میں ایک بار تفویض کریں۔

مثال

// Var keyword example
var a = close
var b = 0.0
var c = 0.0
var green_bars_count = 0
if close > open
    var x = close
    b := x
    green_bars_count := green_bars_count + 1
    if green_bars_count >= 10
        var y = close
        c := y
plot(a, title = "a")
plot(b, title = "b")
plot(c, title = "c")

متغیر ‘a’ سیریز میں ہر کالم کی پہلی کالم کی بندش کی قیمت کو برقرار رکھتا ہے۔ متغیر ‘b’ سیریز میں پہلے نیلم سبز نیلم کی قیمت کی سلاخوں کی اختتامی قیمت کو برقرار رکھتا ہے۔ متغیر ‘c’ سیریز میں دسویں ٹماٹر کی گرین ٹماٹر کی اختتامی قیمت کو برقرار رکھتا ہے۔

ایف ایم زیڈ پر، یہ ریئل ٹائم قیمت ماڈل، اختتامی قیمت ماڈل،varvaripہم مندرجہ ذیل کوڈ کے ساتھ متغیرات کی جانچ پڑتال کرتے ہیں:

strategy("test pine", "test 1", true) 

// 测试 var varip
var i = 0
varip ii = 0

// 将策略逻辑每轮改变的i、ii打印在图上
plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red)
plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green)

// 每轮逻辑执行都给i、ii递增1
if true
    i := i + 1
    ii := ii + 1
  • ریئل ٹائم قیمت کا ماڈل مندرجہ بالا ٹیسٹ کوڈ کو دو مراحل میں تقسیم کیا گیا ہے: 1۔ تاریخی K لائن مرحلہ ◦ 2۔ حقیقی K لائن مرحلہ ◦ جب حقیقی وقت کی قیمتوں کا ماڈل ، تاریخی K لائن مرحلہ ،varvaripبیان کردہ متغیر i ، ii ہر بار حکمت عملی کے کوڈ پر عملدرآمد کرتے وقت اضافی کارروائی کرتے ہیں کیونکہif trueلہذا یہ یقینی طور پر اس کے مطابق مشروط کوڈ بلاک کو انجام دیتا ہے). لہذا آپ دیکھ سکتے ہیں کہ ریٹرننگ کے نتیجے میں K لائن BAR پر دکھائے جانے والے اعداد و شمار میں سے ہر ایک میں 1 اضافہ ہوتا ہے۔ جب تاریخی K لائن مرحلہ ختم ہوتا ہے تو ، حقیقی وقت کا K لائن مرحلہ شروع ہوتا ہے۔varvaripاعلانات کے متغیرات میں مختلف تبدیلیاں آنا شروع ہوجاتی ہیں۔ کیونکہ یہ ایک حقیقی وقت کی قیمتوں کا ماڈل ہے ، اس لئے ایک K لائن BAR میں ہر قیمت میں تبدیلی کے لئے حکمت عملی کا کوڈ ایک بار پھر نافذ کیا جاتا ہے ، اور اس طرح اس کی قیمتوں میں تبدیلی کی جاتی ہے۔i := i + 1اورii := ii + 1ہر بار ایک بار کیا جاتا ہے۔ فرق یہ ہے کہ ii ہر بار ترمیم کرتا ہے۔ اگرچہ i ہر بار بھی ترمیم کرتا ہے ، لیکن اگلے دور میں حکمت عملی کی منطق پر عملدرآمد کرتے وقت اس سے پہلے کی قدر کو بحال کیا جاتا ہے ، جب تک کہ موجودہ K لائن BAR ختم نہ ہوجائے تب تک i کی قیمت کی تازہ کاری نہیں کی جاتی ہے (یعنی اگلے دور میں حکمت عملی کی منطق پر عملدرآمد نہیں کیا جاتا ہے) ۔ لہذا یہ دیکھا جاسکتا ہے کہ متغیر i اب بھی ہر بار بار 1 میں اضافہ ہوتا ہے۔ لیکن متغیر ii ہر بار بار کئی بار جمع ہوتا ہے۔

  • اختتامی قیمت کا ماڈل چونکہ اختتامی قیمتوں کے ماڈل میں ہر K لائن BAR ختم ہونے پر ایک حکمت عملی منطق انجام دی جاتی ہے۔ لہذا ، اختتامی قیمتوں کے ماڈل میں ، تاریخی K لائن مرحلے اور حقیقی وقت کے K لائن مرحلے میں ،varvaripمندرجہ بالا مثالوں میں بیان کردہ متغیرات کی بڑھتی ہوئی کارکردگی بالکل یکساں ہے، ہر K لائن BAR میں اضافہ 1 ہے.

varip

varip ((var intrabar persist) ایک کلیدی لفظ ہے جو تفویض اور ایک بار شروع ہونے والی متغیرات کے لئے استعمال ہوتا ہے۔ یہ کلیدی لفظ var کی طرح ہے ، لیکن متغیرات جو varip کے بیانات کا استعمال کرتے ہیں وہ K لائن اپ ڈیٹ کے درمیان اپنی اقدار کو برقرار رکھتے ہیں۔

varip variable_name = expression

وضاحت:

  • variable_name- کسی بھی صارف متغیر کا نام جس کی پائن اسکرپٹ میں اجازت ہے_), لیکن نمبر سے شروع نہیں)
  • expression- کسی بھی ریاضیاتی اظہار، جیسا کہ جب باقاعدہ متغیر کی تعریف کی جاتی ہے۔ پہلی K لائن پر، اظہار صرف ایک بار حساب کیا جاتا ہے اور اسے متغیر میں ایک بار مختص کیا جاتا ہے۔

مثال

// varip
varip int v = -1
v := v + 1
plot(v)

var کا استعمال کرتے ہوئے ، نقشہ bar_index کی قدر واپس کرے گا۔ varp کا استعمال کرتے ہوئے ، تاریخی K لائن پر وہی عمل ہوتا ہے ، لیکن حقیقی وقت K لائن پر ، نقشہ ایک قدر واپس کرے گا ، جو ہر ایک ٹِک کے لئے بڑھتا ہے۔

نوٹ صرف سادہ اقسام کے ساتھ استعمال کیا جا سکتا ہے، جیسے float،int،bool،string، اور ان اقسام کی صفوں کے ساتھ استعمال کیا جا سکتا ہے۔

true

ایک Boolean متغیر کی قدر ظاہر کرنے کے لئے، یا جب اظہار استعمال کیا جاتا ہےموازنہیامنطقآپریٹر کے لئے قابل قدر اقدار

نوٹ یہ بھی دیکھیںموازنہآپریٹر اورمنطقآپریٹرز کی وضاحت:

مزید دیکھیے bool

false

ایک بول قسم کے متغیر کی قدر ظاہر کرتا ہے ، اور موازنہ آپریشن ، منطقی آپریشن کے نتائج

نوٹ یہ بھی دیکھیںموازنہآپریٹر اورمنطقآپریٹرز کی وضاحت:

مزید دیکھیے bool

if

اگر جملہ بیانات کے شرائط کو پورا کرنے کے لئے لازمی طور پر عملدرآمد کرنے والے جملے کے بلاکس کی وضاحت کرتا ہے۔ پائن اسکرپٹ زبان کے چوتھے ایڈیشن میں آپ کو else if نحو کا استعمال کرنے کی اجازت ہے۔

جنرل کوڈ:

var_declarationX = if condition
    var_decl_then0
    var_decl_then1
    ...
    var_decl_thenN
    return_expression_then
else if [optional block]
    var_decl_else0
    var_decl_else1
    ...
    var_decl_elseN
    return_expression_else
else
    var_decl_else0
    var_decl_else1
    ...
    var_decl_elseN
    return_expression_else

نوٹ var_declarationX- اس متغیر کو if کے جملے کی قدر ملتی ہے condition- اگر شرط true ہو تو اسٹیٹمنٹ بلاک استعمال کریںthenاس میں منطقvar_decl_then0var_decl_then1اگر شرط false ہو تو اسٹیٹمنٹ بلاک استعمال کریںelse ifیاelseاس میں منطقvar_decl_else0var_decl_else1وغیرہ) return_expression_then , return_expression_else- ماڈیول میں آخری اظہار یا بلاک سے Else اظہار بیان کی حتمی قیمت واپس کرے گا. اگر متغیر کا اعلان آخر میں ہے تو ، اس کی قیمت نتیجہ کی قیمت ہوگی.

ایک if بیان کی واپسی کی قیمت کی قسم پر منحصر ہےreturn_expression_thenاورreturn_expression_elseٹائپ 。TradingView پر چلتے وقت ، ان کی اقسام کا مماثل ہونا ضروری ہے: جب آپ کے پاس else بلاک میں ایک تار کی قیمت ہے ، تو پھر اسٹیٹمنٹ بلاک سے ایک عددی قدر واپس کرنا ناممکن ہے۔ 。 ایف ایم زیڈ پر چلتے وقت ، مندرجہ ذیل مثال میں کوئی غلطی نہیں ہوگی ، جب y قیمت “اوپن” ہوتی ہے تو ، پلاٹ ڈرائنگ کے وقت اس کی قیمت n / a ہوتی ہے۔

مثال

// This code compiles
x = if close > open
    close
else
    open  

// This code doesn’t compile by trading view
// y = if close > open
//     close
// else
//     "open"
plot(x)

چھوڑ دیا جا سکتا ہےelseبلاک اس صورت میں ، اگر شرط غلط ہے تو ، var_declarationX متغیر کو ایک خالی خالی تھروال تفویض کیا جائے گا (na، false یا ):

مثال

// if
x = if close > open
    close
// If current close > current open, then x = close.
// Otherwise the x = na.
plot(x)

ایک سے زیادہ else if بلاک استعمال کیا جا سکتا ہے یا بالکل بھی نہیں then ، else if ، else کے بلاکس کو چار خالی جگہوں پر منتقل کیا جاتا ہے:

مثال

// if
x = if open > close
    5
else if high > low
    close
else
    open
plot(x)

نظر انداز کر سکتے ہیںifاسٹیٹمنٹ کی نتیجہ ویلیو ((var_declarationX= کو خارج کیا جا سکتا ہے) ۔ اگر آپ کو اظہار کے ضمنی اثرات کی ضرورت ہو تو یہ مفید ثابت ہوسکتا ہے، مثال کے طور پر حکمت عملی کی تجارت میں:

مثال

if (ta.crossover(high, low))
    strategy.entry("BBandLE", strategy.long, stop=low)
else
    strategy.cancel(id="BBandLE")

اگر جملے ایک دوسرے پر مشتمل ہیں:

مثال

// if
float x = na
if close > open
    if close > close[1]
        x := close
    else
        x := close[1]
else
    x := open
plot(x)

for

‘for’ ڈھانچہ ایک سے زیادہ جملوں کو بار بار کرنے کی اجازت دیتا ہے:

[var_declaration =] for counter = from_num to to_num [by step_num]
    statements | continue | break
    return_expression

var_declaration- ایک اختیاری متغیر کا بیان، جس کی قدر return_expression کے طور پر تفویض کی جائے گی۔ counter- ایک متغیر جس میں سائیکل کی گنتی کی قدر کو محفوظ کیا جاتا ہے ، جس میں سائیکل کی ہر تکرار میں 1 یا اسٹیپ_نم کی قدر میں اضافہ / کمی ہوتی ہے۔ from_num- کیلکولیٹر کی ابتدائی قیمتوں ◄ کو استعمال کرنے کی اجازت دی گئی ہے to_num- کاؤنٹر کی حتمی قیمت。 جب کاؤنٹر to_num سے بڑا ہو (یا from_num > to_num کی صورت میں to_num سے کم) تو ، لوپ کو روک دیا گیا。 کوئنسریز int/float thresholds/expressions کو استعمال کرنے کی اجازت ہے ، لیکن ان کی تشخیص صرف لوپ کے پہلے تعدد میں کی جاتی ہے۔ step_num- کاؤنٹر کی بڑھتی / گھٹتی ہوئی قیمت ◦ یہ اختیاری ہے ◦ طے شدہ قدر + 1 یا -1 ہے ، جو from_num یا to_num میں سے سب سے بڑا ہے۔ ◦ جب قدر استعمال کی جاتی ہے تو ، کاؤنٹر بھی from_num یا to_num میں سے سب سے بڑے کی بنیاد پر بڑھتا / گھٹتا ہے ، لہذا step_num کا + / - نشان اختیاری ہے۔ statements | continue | break- کسی بھی تعداد میں جملے، یا ‘continue’ یا ‘break’ کی ورڈز کو 4 خالی جگہوں یا ایک ٹیب میں سکریپ کریں۔ return_expression- لوپ کی واپسی کی قیمت ، اگر موجود ہو تو ، var_declaration میں متغیر کو تفویض کیا جائے گا۔ اگر لوپ کی وجہ سے continue یا break کی ورڈ سے باہر نکل جاتا ہے تو ، لوپ کی واپسی کی قیمت لوپ سے باہر نکلنے سے پہلے تفویض کردہ آخری متغیر کی واپسی کی قیمت ہے۔ continue- ایک ایسا کلیدی لفظ جو صرف لوپ میں استعمال کیا جا سکتا ہے۔ اس کے نتیجے میں لوپ کی اگلی تکرار کی جاتی ہے۔ break- حلقے سے باہر نکلنے کے لئے کلیدی الفاظ

مثال

// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close
qtyOfHigherCloses(lookback) =>
    int result = 0
    for i = 1 to lookback
        if close[i] > close
            result += 1
    result
plot(qtyOfHigherCloses(14))

مزید دیکھیے for...in while

for…in

for...inڈھانچہ ہر عنصر کے لئے ایک سے زیادہ جملے کی اجازت دیتا ہے۔ یہ کسی بھی پیرامیٹرز کے ساتھ استعمال کیا جا سکتا ہے:array_element، یا دونوں پیرامیٹرز کے ساتھ استعمال کریں:[index, array_element]│دوسری شکل لوپ کی تقریب کو متاثر نہیں کرتی │ یہ ماٹرو کے پہلے متغیر میں موجودہ تکرار کے انڈیکس کو ٹریک کرتی ہے │

[var_declaration =] for array_element in array_id
    statements | continue | break
    return_expression

[var_declaration =] for [index, array_element] in array_id
    statements | continue | break
    return_expression

var_declaration- ایک اختیاری متغیر کا اعلان ہے، جو سائیکلنگ کے لئے دیا جائے گاreturn_expressionکی قدر index- منتخب متغیر جو موجودہ تعدد انڈیکس کی پیروی کرتا ہے۔ انڈیکس 0 سے شروع ہوتا ہے۔ متغیر سائیکلنگ جسم میں ناقابل تبدیلی ہے۔ جب استعمال کیا جاتا ہے تو ، اسے ایک میں بھی شامل کیا جانا چاہئے۔array_elementکے ذیلی گروپ میں array_element- ہر ایک مسلسل صف کے عناصر کی متغیرات پر مشتمل ہے جس میں سائیکل میں کام کیا جائے گا۔ یہ متغیر سائیکل میں غیر تبدیل شدہ ہے۔ array_id- صف ID جو دائرے میں گھومتی ہے۔ statements | continue | break- کسی بھی تعداد میں جملے، یا ‘continue’ یا ‘break’ کی ورڈز کو 4 خالی جگہوں یا ایک ٹیب میں سکریپ کریں۔ return_expression- لوپ کی واپسی کی قیمت کو تفویض کیا جاتا ہےvar_declarationمیں متغیر ، اگر موجود ہو۔ اگر لوپ ‘continue’ یا ‘break’ کی ورڈ کی وجہ سے باہر نکلتا ہے تو ، لوپ کی واپسی کی قیمت لوپ سے باہر نکلنے سے پہلے آخری تفویض شدہ متغیر ہے۔ continue- ایک ایسا کلیدی لفظ جو صرف لوپ میں استعمال کیا جا سکتا ہے۔ اس کے نتیجے میں لوپ کی اگلی تکرار کی جاتی ہے۔ break- حلقے سے باہر نکلنے کے لئے کلیدی الفاظ

لوپ کے اندر صف کے عناصر یا اس کے سائز میں ترمیم کی اجازت ہے۔ یہاں، ہم استعمال کرتے ہیںfor...inکی ایک پیرامیٹر فارم ہر K لائن پر ، کتنے K لائنوں کی OHLC قدر ‘قریب’ قدر سے زیادہ SMA ہے اس کا تعین کرنے کے لئے:

مثال

// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values
float[] ohlcValues = array.from(open, high, low, close)
qtyGreaterThan(value, array) =>
    int result = 0
    for currentElement in array
        if currentElement > value
            result += 1
        result
plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))

یہاں، ہم نے for…in کے دو قسم کے پیرامیٹرز استعمال کیے ہیں تاکہ ہم اپنےisPosصفوں کی اقدار کو مقرر کریںtrueجب وہ ہمارے پاس تھے،valuesArrayصف میں ہم آہنگ صحیح وقت ہے:

مثال

// for...in
var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55)
var isPos = array.new_bool(10, false)  

for [index, value] in valuesArray
    if value > 0
        array.set(isPos, index, true)  

if barstate.islastconfirmedhistory
    runtime.log(str.tostring(isPos))

مزید دیکھیے for while array.sum array.min array.max

while

whileمقامی کوڈ بلاک کی مشروط تکرار کی اجازت دیتا ہے۔

variable_declaration = while boolean_expression
    ...
    continue
    ...
    break
    ...
    return_expression

وضاحت: variable_declaration- متغیرات کے اختیاری بیاناتreturn expressionاس متغیر کے لئے ابتدائی قیمت فراہم کی جاسکتی ہے۔ boolean_expression- اگر سچ ہے تو، پھر عملدرآمدwhileجملے کا مقامی بلاک۔ اگر false ہے توwhileجملے کے بعد اسکرپٹ پر عملدرآمد جاری رکھیں continue - continueکلیدی الفاظ کے نتیجے میں سائیکل اگلی نسل میں تقسیم ہوتا ہے۔ break - breakاسکرپٹ پر عملدرآمد کے دوران.whileجملے کے بعد بحال return_expression- فراہم کیwhileایک اختیاری لائن جس میں ایک جملہ ایک قدر لوٹاتا ہے۔

مثال

// This is a simple example of calculating a factorial using a while loop.
int i_n = input.int(10, "Factorial Size", minval=0)
int counter   = i_n
int factorial = 1
while counter > 0
    factorial := factorial * counter
    counter   := counter - 1

plot(factorial)

نوٹ ابتدائیwhileلائن کے بعد مقامی کوڈ بلاک کو چار خالی جگہوں یا ایک میٹرکس میں سکریپ کرنا ہوگا۔ ختم کرنے کے لئےwhileسائیکلwhileاس کے بعد بول ایکسپریشن کو false میں تبدیل کرنا ہوگا یا پھر اسے پھانسی دینا ہوگیbreak

switch

switch آپریٹر شرط اور اظہار کی قدر کی بنیاد پر کنٹرول کو کئی جملوں میں سے ایک میں منتقل کرتا ہے۔

[variable_declaration = ] switch expression
    value1 => local_block
    value2 => local_block
    ...
    => default_local_block

[variable_declaration = ] switch
    boolean_expression1 => local_block
    boolean_expression2 => local_block
    ...
    => default_local_block

اس کا مطلب یہ ہے کہ آپ کو اس کے بارے میں مزید معلومات حاصل کرنے کی ضرورت ہے۔

مثال

// Switch using an expression

string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"])

float ma = switch i_maType
    "EMA" => ta.ema(close, 10)
    "SMA" => ta.sma(close, 10)
    "RMA" => ta.rma(close, 10)
    // Default used when the three first cases do not match.
    => ta.wma(close, 10)

plot(ma)

ایکسپریس کے بغیر سوئچ:

مثال

strategy("Switch without an expression", overlay = true)

bool longCondition  = ta.crossover( ta.sma(close, 14), ta.sma(close, 28))
bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

switch
    longCondition  => strategy.entry("Long ID", strategy.long)
    shortCondition => strategy.entry("Short ID", strategy.short)

واپس کی قدر مقامی جملے کے بلاک میں آخری اظہار کی قدر

نوٹ صرف عملدرآمدlocal_blockمثال یاdefault_local_blockایک۔default_local_blockصرف کے ساتھ=>نشان کے ساتھ ساتھ متعارف کرایا، اور صرف اس صورت میں جب پچھلے بلاک پر عملدرآمد نہیں کیا گیا تھا.switchایک متغیر کو اسٹیٹمنٹ کا نتیجہ تفویض کیا گیا ہے اور اس کی وضاحت نہیں کی گئی ہےdefault_local_block، اگر نہیں کیاlocal_blockتو یہ جملہ واپس آتا ہےnaswitchایک جملے کے نتائج متغیرات کو تفویض کیا جاتا ہے جب تمامlocal_blockمثال کے طور پر ایک ہی قسم کی اقدار کو واپس کرنا ہوگا

مزید دیکھیے if ?:

series

series ایک کلیدی لفظ ہے جو ڈیٹا سیریز کی قسم کی نمائندگی کرتا ہے۔ واضح طور پر استعمال کیا جاتا ہے۔seriesمطلوبہ الفاظ عام طور پر غیر ضروری ہیں۔

آپریٹر

=

متغیرات کو قدر دینے کے لئے استعمال کیا جاتا ہے ، لیکن صرف متغیرات کے اعلان پر ((پہلی بار استعمال کیا جاتا ہے)) ۔

:=

تفویض آپریٹر ، بائیں طرف کی متغیر کو تفویض کریں۔ پہلے بیان کردہ متغیر کو تفویض کرنے کے لئے استعمال کیا جاتا ہے۔

!=

کسی بھی قسم کے اظہار کے لیے قابل اطلاق۔

expr1 != expr2

واپس کی قدر بول ویلیو، یا بول ویلیو کی ایک سیریز

%

ماڈیول نمبر ((پوری تعداد میں اضافی تعداد) ◄ عددی قدر کے اظہار کے لئے لاگو ◄

expr1 % expr2

واپس کی قدر عددی یا فلوٹ پوائنٹ کی قیمت، یا اقدار کی ایک سیریز

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

مثال: - 1٪ 9 = -1 - 9 * truncate ((-19) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。

%=

ماڈیولر تفویض ◄ عددی اظہار پر لاگو ◄

expr1 %= expr2

مثال

// Equals to expr1 = expr1 % expr2.
a = 3
b = 3
a %= b
// Result: a = 0.
plot(a)

واپس کی قدر عددی یا فلوٹ پوائنٹ کی قیمت، یا اقدار کی ایک سیریز

*

ضرب ◄ عددی اظہار پر لاگو ◄

expr1 * expr2

واپس کی قدر عددی یا فلوٹ پوائنٹ کی قیمت، یا اقدار کی ایک سیریز

*=

ضرب کی تعیناتی ◄ عددی اظہار پر لاگو ◄

expr1 *= expr2

مثال

// Equals to expr1 = expr1 * expr2.
a = 2
b = 3
a *= b
// Result: a = 6.
plot(a)

واپس کی قدر عددی یا فلوٹ پوائنٹ کی قیمت، یا اقدار کی ایک سیریز

+

اضافی یا ایک عددی عدد ≠