রিসোর্স লোড হচ্ছে... লোডিং...

FMZ পাইন স্ক্রিপ্ট ডক

লেখক:উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্ন, সৃষ্টিঃ ২০২২-০৪-২৮ ১৬ঃ০৫:০৫, আপডেটঃ ২০২৪-০১-১২ ১৭ঃ২৫ঃ২৭

ক্ষেত্রের মান পরিবর্তন করুন

type order
    float price
    float amount
    string symbol

if strategy.position_size == 0 and open > close
    strategy.entry("long", strategy.long, 1)
    
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

if strategy.position_size != 0
    runtime.log(order1)
    order1.price := 999
    order1.amount := 100
    runtime.log(order1)
    runtime.error("stop")

একটি অবজেক্ট ক্ষেত্রের মান পরিবর্তন করা যেতে পারে:=পুনঃনির্ধারণ অপারেটর।

বস্তুর সংগ্রহ

উদাহরণটি একটি খালি অ্যারে ঘোষণা করে যা ব্যবহারকারীর দ্বারা সংজ্ঞায়িত অর্ডার টাইপের বস্তুগুলিকে ধরে রাখবেঃ

type order
    float price
    float amount
    string symbol

arrOrder = array.new<order>()

order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")

array.push(arrOrder, order1)
array.push(arrOrder, order2)

runtime.log(arrOrder)
runtime.error("stop")

অথবা

type order
    float price
    float amount
    string symbol

var array<order> arrOrder = na
arrOrder := array.new<order>()

order1 = order.new(99, 1, "BTC_USDT")
order2 = order.new(100, 2, "ETH_USDT")

array.push(arrOrder, order1)
array.push(arrOrder, order2)

runtime.log(arrOrder)
runtime.error("stop")

কপি অবজেক্ট

পাইনে, অবজেক্টগুলি রেফারেন্স দ্বারা নির্ধারিত হয়। যখন একটি বিদ্যমান অবজেক্ট একটি নতুন ভেরিয়েবলকে নির্ধারিত হয়, তখন উভয়ই একই অবজেক্টকে উল্লেখ করে।

//@version=5
indicator("")
type pivotPoint
    int x
    float y
pivot1 = pivotPoint.new()
pivot1.x := 1000
pivot2 = pivot1
pivot2.x := 2000
// Both plot the value 2000.
plot(pivot1.x)
plot(pivot2.x)

নিম্নলিখিত উদাহরণে, আমরা একটি পিভট 1 অবজেক্ট তৈরি করি এবং এর এক্স ক্ষেত্রটি 1000 এ সেট করি। তারপর আমরা একটি পিভট 2 ভেরিয়েবল ঘোষণা করি যা পিভট 1 অবজেক্টের একটি রেফারেন্স ধারণ করে, তাই তারা উভয়ই একই উদাহরণে নির্দেশ করে। অতএব, পিভট 2 এক্স পরিবর্তন করা পিভট 1 এক্সকেও পরিবর্তন করে, কারণ উভয়ই একই বস্তুর এক্স ক্ষেত্রের উল্লেখ করে।

মূল বস্তুর থেকে স্বাধীন একটি অনুলিপি তৈরি করতে, এই ক্ষেত্রে আমরা অন্তর্নির্মিত অনুলিপি ((() পদ্ধতি ব্যবহার করতে পারি। এই উদাহরণে, আমরা pivot1 বস্তুর অনুলিপিকৃত দৃষ্টান্তটি উল্লেখ করার জন্য পরিবর্তনশীল pivot2 ঘোষণা করি। এখন, pivot2.x পরিবর্তন করা pivot1.x পরিবর্তন করবে না, কারণ এটি একটি পৃথক বস্তুর x ক্ষেত্রকে উল্লেখ করেঃ

//@version=5
indicator("")
type pivotPoint
    int x
    float y
pivot1 = pivotPoint.new()
pivot1.x := 1000
pivot2 = pivotPoint.copy(pivot1)
pivot2.x := 2000
// Plots 1000 and 2000.
plot(pivot1.x)
plot(pivot2.x)

এটা লক্ষ করা উচিত যে ট্রেডিং ভিউ এর কপি পদ্ধতিটি একটি অগভীর অনুলিপি। যদি কোনও বস্তুর বিশেষ ধরণের ক্ষেত্র থাকে (অ্যারে, ইত্যাদি), তবে বস্তুর অগভীর অনুলিপিতে এই ক্ষেত্রগুলি বস্তুর সাথে একই দৃষ্টান্তের দিকে নির্দেশ করবে। FMZ প্ল্যাটফর্ম সরাসরি গভীর কপি বাস্তবায়ন, এবং কোন অতিরিক্ত প্রক্রিয়াকরণের প্রয়োজন হয়. আপনি নিম্নলিখিত উদাহরণ পড়ুন করতে পারেনঃ

গভীর কপি

//@version=5

indicator("test deepCopy")

type orderInfo
    float price
    float amount

type labelInfo
    orderInfo order
    string labelMsg

labelInfo1 = labelInfo.new(orderInfo.new(100, 0.1), "test labelInfo1")
labelInfo2 = labelInfo.copy(labelInfo1)

labelInfo1.labelMsg := "labelInfo1->2"    // Modify the base type field of labelInfo1 to see if it affects labelInfo2
labelInfo1.order.price := 999             // Modify the composite type field of labelInfo1 to see if it affects labelInfo2

runtime.log(labelInfo1)
runtime.log(labelInfo2)
runtime.error("stop")

পরীক্ষার ফলাফলগুলি দেখায় যে labelInfo.copy ((labelInfo1) এক্সিকিউটেড হলে একটি গভীর অনুলিপি এবং labelInfo1 এর কোনও ক্ষেত্র সংশোধন করা labelInfo2 কে প্রভাবিত করবে না।

পদ্ধতি

পাইন ভাষায় পদ্ধতি হল একটি অন্তর্নির্মিত বা ব্যবহারকারী-সংজ্ঞায়িত প্রকারের একটি নির্দিষ্ট দৃষ্টান্তের সাথে যুক্ত বিশেষায়িত ফাংশন। বেশিরভাগ ক্ষেত্রে, তারা মূলত নিয়মিত ফাংশনের মতোই, তবে একটি সংক্ষিপ্ত, আরও সুবিধাজনক সিনট্যাক্স সরবরাহ করে। ব্যবহারকারীরা পাইন অবজেক্টের ক্ষেত্রগুলিতে অ্যাক্সেস করার মতো ডট নোটেশন ব্যবহার করে ভেরিয়েবলগুলিতে সরাসরি পদ্ধতি অ্যাক্সেস করতে পারে। পাইনে অ্যারে, ম্যাট্রিক্স, মানচিত্র, লাইন, ফিল লাইন এবং আরও অনেক কিছু সহ সমস্ত বিশেষ ধরণের জন্য অন্তর্নির্মিত পদ্ধতি অন্তর্ভুক্ত রয়েছে। এই পদ্ধতিগুলি ব্যবহারকারীদের স্ক্রিপ্টে এই ধরণের বিশেষায়িত প্রোগ্রামগুলি কল করার জন্য আরও সংক্ষিপ্ত উপায় সরবরাহ করে।

অন্তর্নির্মিত পদ্ধতি

উদাহরণস্বরূপ, এরকম একটি স্ক্রিপ্ট কোডঃ

//@version=5
indicator("Custom Sample BB", overlay = true)

float sourceInput  = input.source(close, "Source")
int   samplesInput = input.int(20, "Samples")
int   n            = input.int(10, "Bars")
float multiplier   = input.float(2.0, "StdDev")

var array<float> sourceArray = array.new<float>(samplesInput)
var float        sampleMean  = na
var float        sampleDev   = na

// Identify if `n` bars have passed.
if bar_index % n == 0
    // Update the queue.
    array.push(sourceArray, sourceInput)
    array.shift(sourceArray)
    // Update the mean and standard deviaiton values.
    sampleMean := array.avg(sourceArray)
    sampleDev  := array.stdev(sourceArray) * multiplier

// Calculate bands.
float highBand = sampleMean + sampleDev
float lowBand  = sampleMean - sampleDev

plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)

এটি সমতুল্যভাবে পুনরায় লেখা যেতে পারেঃ

//@version=5
indicator("Custom Sample BB", overlay = true)

float sourceInput  = input.source(close, "Source")
int   samplesInput = input.int(20, "Samples")
int   n            = input.int(10, "Bars")
float multiplier   = input.float(2.0, "StdDev")

var array<float> sourceArray = array.new<float>(samplesInput)
var float        sampleMean  = na
var float        sampleDev   = na

// Identify if `n` bars have passed.
if bar_index % n == 0
    // Update the queue.
    sourceArray.push(sourceInput)
    sourceArray.shift()
    // Update the mean and standard deviaiton values.
    sampleMean := sourceArray.avg()
    sampleDev  := sourceArray.stdev() * multiplier

// Calculate band values.
float highBand = sampleMean + sampleDev
float lowBand  = sampleMean - sampleDev

plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)

আপনি দেখতে পারেন যে PINE সমর্থন পরেMethodsকোডarray.avg(sourceArray)পদ্ধতির আকারে লেখা যেতে পারেঃsourceArray.avg(). মনে রাখবেন যে FMZ মত কল সমর্থন করে নাarray.avg currently.

ব্যবহারকারীর নির্ধারিত পদ্ধতি

পাইন ব্যবহারকারীদের কাস্টম পদ্ধতিগুলি সংজ্ঞায়িত করতে দেয় যা যে কোনও অন্তর্নির্মিত বা ব্যবহারকারীর সংজ্ঞায়িত ধরণের বস্তুগুলির সাথে কাজ করে। একটি পদ্ধতি সংজ্ঞায়িত করা মূলত একটি ফাংশন সংজ্ঞায়িত করার মতোই, দুটি মূল পার্থক্য সহঃ

  1. ফাংশন নামের আগে পদ্ধতি কীওয়ার্ড অন্তর্ভুক্ত করা আবশ্যক।
  2. পদ্ধতির প্রথম পরামিতির প্রকার স্পষ্টভাবে ঘোষণা করা আবশ্যক কারণ এটি পদ্ধতির সাথে যুক্ত হবে এমন বস্তুর প্রকারকে উপস্থাপন করে।

উদাহরণস্বরূপ, নিম্নলিখিত কোডে, বলিংজার সূচক গণনার জন্য কোডটি ব্যবহারকারীর দ্বারা সংজ্ঞায়িত পদ্ধতি হিসাবে সংক্ষিপ্ত করা হয়েছেঃ

//@version=5
indicator("Custom Sample BB", overlay = true)

float sourceInput  = input.source(close, "Source")
int   samplesInput = input.int(20, "Samples")
int   n            = input.int(10, "Bars")
float multiplier   = input.float(2.0, "StdDev")

var array<float> sourceArray = array.new<float>(samplesInput)
var float        sampleMean  = na
var float        sampleDev   = na

// Identify if `n` bars have passed.
if bar_index % n == 0
    // Update the queue.
    sourceArray.push(sourceInput)
    sourceArray.shift()
    // Update the mean and standard deviaiton values.
    sampleMean := sourceArray.avg()
    sampleDev  := sourceArray.stdev() * multiplier

// Calculate band values.
float highBand = sampleMean + sampleDev
float lowBand  = sampleMean - sampleDev

plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)

সংশোধিতঃ

//@version=5
indicator("Custom Sample BB", overlay = true)

float sourceInput  = input.source(close, "Source")
int   samplesInput = input.int(20, "Samples")
int   n            = input.int(10, "Bars")
float multiplier   = input.float(2.0, "StdDev")

var array<float> sourceArray = array.new<float>(samplesInput)
method maintainQueue(array<float> srcArray, float value, bool takeSample = true) =>
    if takeSample
        srcArray.push(value)
        srcArray.shift()
    srcArray

method calcBB(array<float> srcArray, float mult, bool calculate = true) =>
    var float mean = na
    var float dev  = na
    if calculate
        mean := srcArray.avg()
        dev  := srcArray.stdev() * mult
    [mean, mean + dev, mean - dev]

bool newSample = bar_index % n == 0

[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

plot(sampleMean, "Basis", color.orange)
plot(highBand, "Upper", color.lime)
plot(lowBand, "Lower", color.red)

আপনি দেখতে পারেন যে ব্যবহারকারী-সংজ্ঞায়িত পদ্ধতির প্যারামিটার তালিকার প্রথম প্যারামিটার কীওয়ার্ড পদ্ধতিঃ maintainQueue এবং calcBB দিয়ে ঘোষণা করা হয়array<float>, যার মানে হল যে পদ্ধতিটি টাইপ ভেরিয়েবলের পদ্ধতিarray<float>, তাই আপনি দেখতে পারেন যে নিম্নলিখিত কোড বোলিঞ্জার সূচক গণনা করতে বলা হয়.

[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

অতিরিক্ত লোডিংয়ের পদ্ধতি

ব্যবহারকারী-সংজ্ঞায়িত পদ্ধতিগুলি একই সনাক্তকারী দিয়ে বিদ্যমান অন্তর্নির্মিত পদ্ধতি এবং ব্যবহারকারী-সংজ্ঞায়িত পদ্ধতিগুলিকে ওভাররাইড এবং ওভারলোড করতে পারে। এই বৈশিষ্ট্যটি ব্যবহারকারীদের একই পদ্ধতির নামের অধীনে বিভিন্ন আর্গুমেন্ট স্বাক্ষরগুলির সাথে যুক্ত একাধিক রুটিন সংজ্ঞায়িত করতে দেয়। একটি সহজ উদাহরণ হিসাবে, ধরুন আমরা একটি ভেরিয়েবলের প্রকার সনাক্ত করতে একটি পদ্ধতি সংজ্ঞায়িত করতে চাই। যেহেতু আমাদের স্পষ্টভাবে একটি ব্যবহারকারী-সংজ্ঞায়িত পদ্ধতির সাথে যুক্ত অবজেক্টের ধরণটি নির্দিষ্ট করতে হবে, তাই আমাদের প্রতিটি ধরণের জন্য ওভারলোডগুলি সংজ্ঞায়িত করতে হবে যা আমরা এটিকে স্বীকৃতি দিতে চাই। এরপরে আমরা একটি getType (()) পদ্ধতি সংজ্ঞায়িত করি যা একটি ভেরিয়েবলের স্ট্রিং উপস্থাপনা ফেরত দেয় s প্রকার এবং পাঁচটি মৌলিক ধরণের জন্য ওভারলোড রয়েছেঃ

//@version=5
indicator("Type Inspection")

// @function   Identifies an object's type.
// @param this Object to inspect.
// @returns    (string) A string representation of the type.
method getType(int this) =>
    na(this) ? "int(na)" : "int"

method getType(float this) =>
    na(this) ? "float(na)" : "float"

method getType(bool this) =>
    na(this) ? "bool(na)" : "bool"

method getType(color this) =>
    na(this) ? "color(na)" : "color"

method getType(string this) =>
    na(this) ? "string(na)" : "string"

a = 1             // a.getType(): float
b = 1.0           // b.getType(): float
c = true          // c.getType(): bool
d = color.white   // d.getType(): string(na)
e = "1"           // e.getType(): string

runtime.log("a.getType():", a.getType())
runtime.log("b.getType():", b.getType())
runtime.log("c.getType():", c.getType())
runtime.log("d.getType():", d.getType())
runtime.log("e.getType():", e.getType())
runtime.error("stop")

প্রতিটি ভেরিয়েবলের বেস টাইপ নির্ধারণ করে কোন ভেরিয়েবলের ওভারলোডgetType()FMZ প্ল্যাটফর্মে, যেহেতু PINE স্ক্রিপ্টগুলির অন্তর্নিহিত বাস্তবায়নটি জাভাস্ক্রিপ্ট, তাই সংখ্যাসূচক টাইপটি ফ্লোটিং পয়েন্ট ডেটা (ফ্লোটিং) হিসাবে বিচার করা হবে।

অন্তর্নির্মিত ফাংশন

একটি ফাংশন কল করার সময়, আপনি আর্গুমেন্ট পাস করতে পারেন। আপনি মান বরাদ্দ করার জন্য আর্গুমেন্ট নাম বরাদ্দ করতে পারেন। আপনি সংশ্লিষ্ট আর্গুমেন্ট অবস্থানে সরাসরি ভেরিয়েবল পাস করতে পারেন। মিশ্র ব্যবহারও সমর্থিত। উদাহরণস্বরূপঃ

plot(close, title="test plot")     // Pass the argument close directly; specify the argument title and assign the string "test plot"

আর্গুমেন্ট নাম বরাদ্দ নির্দিষ্ট করার পরে, আপনি আর সরাসরি একটি আর্গুমেন্ট হিসাবে পরিবর্তনশীল পাস করতে পারবেন না, এবং পরবর্তী আর্গুমেন্টগুলিকে আর্গুমেন্ট নাম বরাদ্দের আকারে লিখতে হবে।

// plot(close, title="test", color.red)    // Although the third argument of plot is the color value, but this will report an error
plot(close, title="test", color=color.red) // Correct writing
plot(close, "test", color.red)             // Correct writing

সময়সীমা

সময়সীমা.সেকেন্ডে

সময়সীমা রূপান্তর করুনtimeframeসেকেন্ডে যুক্তি।

timeframe.in_seconds(timeframe)

উদাহরণ

// Get chart timeframe:
i_tf = input.timeframe("1D")

// Convert timeframe to the int value (number of seconds in 1 Day):
tf = timeframe.in_seconds(i_tf)

plot(tf)

রিটার্নএকটি বারে সেকেন্ডের সংখ্যা একটি int প্রতিনিধিত্বtimeframe.

যুক্তি

  • timeframe(সহজ স্ট্রিং) টাইমফ্রেম. ঐচ্ছিক. ডিফল্ট হল টাইমফ্রেম. পিরিয়ড.

মন্তব্যসমূহএর জন্যtimeframe>= 1M ফাংশন মাসে 30.4167 (365/12) দিনের উপর ভিত্তি করে সেকেন্ডের সংখ্যা গণনা করে।

আরও দেখুন input.timeframe timeframe.period

টিকার

ticker.heikinashi

একটি সমতল গড় int প্রতিনিধিত্ব মান অনুরোধ করার জন্য একটি টিকার সনাক্তকারী তৈরি করে।

ticker.heikinashi(symbol)

উদাহরণ

heikinashi_close = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

heikinashi_aapl_60_close = request.security(ticker.heikinashi(syminfo.tickerid), "60", close)
plot(heikinashi_close)
plot(heikinashi_aapl_60_close)

রিটার্নrequest.security ফাংশনে সরবরাহ করা যেতে পারে এমন স্টক কোডের স্ট্রিং মান।

যুক্তি

  • symbol(সহজ স্ট্রিং) প্রোডাক্ট কোড আইডেন্টিফায়ার।

আরও দেখুন syminfo.tickerid syminfo.ticker request.security

অনুরোধ

request.data

বাহ্যিক তথ্যের জন্য অনুরোধ করুন।

request.data(url, attribute)

উদাহরণ

/*backtest
start: 2024-09-01 16:00:00
end: 2024-10-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["RunMode",1,358374],["ZPrecision",0,358374]]
*/

var chart_data = "https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data"
spotPrice = request.data(chart_data, "$.spot_close_price")
futuresPrice = request.data(chart_data, "$.future_close_price")
diff = futuresPrice - spotPrice

plot(diff, "perpetual-spot difference")
plot(futuresPrice, "futures prices", overlay=true)
plot(spotPrice, "spot prices", overlay=true)

if diff > 80 and strategy.position_size >= 0
    runtime.log("diff > 80")
    strategy.entry("Enter Short", strategy.short)
if diff < 60 and strategy.position_size <= 0
    runtime.log("diff < 60")
    strategy.entry("Enter Short", strategy.long)

রিটার্ন মানঅ্যাট্রিবিউট আর্গুমেন্ট ডেটা সিরিজ নির্দিষ্ট করে।

যুক্তি

  • url(সহজ স্ট্রিং) অনুরোধকৃত ডেটা উৎস url এবং ডেটা উৎস প্রতিক্রিয়ার ডেটা বিন্যাস প্রয়োজনীয়তা পূরণ করতে হবে (অন্তত সময় এবং ডেটা বৈশিষ্ট্য সহ):{"data": [], "schema": ["time", "data"]}. আপনি উদাহরণে ডাটা ফরম্যাটের উল্লেখ করতে পারেনঃ

    {
        "data": [
            [1720051200000, "{\"spot_close_price\" : 57050.01, \"future_close_price\" : 57045.9}"],
            [1720137600000, "{\"spot_close_price\" : 56628.79, \"future_close_price\" : 56604.9}"],
            // ...
        ],
        "schema": ["time", "data"]
    }
    
  • attribute(simple string) অ্যাট্রিবিউট নাম নির্দিষ্ট করে এবং প্রয়োজনীয় তথ্য প্রদান করে। উদাহরণস্বরূপঃ"$.spot_close_price", ব্যবহার$.প্রিফিক্স হিসাবে, এবং অ্যাট্রিবিউট নামটি ডাটা উৎস অনুরোধ করার সময় প্রতিক্রিয়ায় ডাটা ক্ষেত্রে অ্যাট্রিবিউটের সাথে সামঞ্জস্যপূর্ণ

যদি একটি ত্রুটি অনুরোধ করা হয়, আপনি সময় পরিসীমা দ্বারা অনুরোধ করা হয় কিনা তা পরীক্ষা করতে হবেrequest.dataব্যাকটেস্টের জন্য সেট করা সময়সীমার সাথে সামঞ্জস্যপূর্ণ। যদি ব্যাকটেস্টের সময় সিরিজে কোনও ডেটা অনুসন্ধান করা না যায় তবে একটি ত্রুটি রিপোর্ট করা হবে।

এই উদাহরণে ডেটা-ডেটা ডেটা ক্যোয়ারী এসকিউএল বিবৃতিটি হলঃ

WITH latest_data AS (
    SELECT 
        klines.spot_1d.Time AS time,
        CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data
    FROM 
        klines.spot_1d
    JOIN 
        klines.future_1d
    ON 
        klines.spot_1d.Time = klines.future_1d.Time
    WHERE
        klines.spot_1d.Symbol = 'btc_usdt'
    AND 
        klines.future_1d.Symbol = 'btc_usdt.swap'
    AND 
        klines.spot_1d.Exchange = 'Binance'
    AND 
        klines.future_1d.Exchange = 'Binance'
    ORDER BY 
        klines.spot_1d.Time DESC
    LIMIT 100
)
SELECT * FROM latest_data
ORDER BY time ASC;

আপনি অনুসন্ধান করতে পারেন এবং ডেটা লিঙ্ক তৈরি করতে পারেনতথ্য অনুসন্ধানএফএমজেড প্ল্যাটফর্মের পৃষ্ঠা, যাhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/dataউদাহরণে ব্যবহৃত।

request.security

আরেকটা রেজোলিউশনের জন্য জিজ্ঞাসা করুন।

request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency) 

উদাহরণ

s = request.security(syminfo.tickerid, "D", close) // 1 Day
plot(s)

expr = ta.sma(close, 10)
s1 = request.security(syminfo.tickerid, "240", expr) // 240 Minutes
plot(s1)

// To avoid difference in calculation on history/realtime you can request not latest values and use merge strategy flags as follows:
s2 = request.security(syminfo.tickerid, "D", close[1], barmerge.gaps_off, barmerge.lookahead_on)
plot(s2)
f() => [open, high]
[o, h] = request.security(syminfo.tickerid, "D", f())
[l, c] = request.security(syminfo.tickerid, "D", [low, close])
plot((o + h + l + c) / 4)

রিটার্নঅনুরোধকৃত সিরিজ

যুক্তি

  • symbol(সহজ স্ট্রিং) প্রতীক.
  • timeframe(সহজ স্ট্রিং) সময়কাল। একটি খালি স্ট্রিং চার্টের বর্তমান রেজোলিউশন হিসাবে ব্যাখ্যা করা হয়।
  • expression(series int/float/bool/color) একটি এক্সপ্রেশন request.security কল থেকে গণনা করা এবং ফেরত দেওয়া যেতে পারে। এটি একটি সিরিজ বা একটি টুপল হতে পারে যা সিরিজে ক্যাস্ট করা যেতে পারে এমন উপাদানগুলি ধারণ করে।
  • gaps(barmerge_gaps) অনুরোধ করা ডেটার জন্য মার্জ কৌশল (অনুরোধ করা ডেটা স্বয়ংক্রিয়ভাবে প্রধান সিরিজের OHLC ডেটার সাথে মার্জ হয়) । সম্ভাব্য মানঃ barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - অনুরোধ করা ডেটা সম্ভাব্য ফাঁকগুলির সাথে মার্জ করা হয় (না মান) । barmerge.gaps_off - অনুরোধ করা ডেটা ফাঁক ছাড়াই অবিচ্ছিন্নভাবে মার্জ করা হয়, সমস্ত ফাঁকগুলি পূর্ববর্তী নিকটতম বিদ্যমান মানগুলির সাথে পূরণ করা হয়। ডিফল্ট মানটি হল barmerge.gaps_off।
  • lookahead(barmerge_lookahead) অনুরোধ করা ডেটা অবস্থানের জন্য মার্জ কৌশল। সম্ভাব্য মানঃ barmerge.lookahead_on, barmerge.lookahead_off। সংস্করণ 3 থেকে শুরু করে ডিফল্ট মানটি barmerge.lookahead_off। মনে রাখবেন যে আচরণটি রিয়েল-টাইমে একই, এবং শুধুমাত্র ইতিহাসের উপর ভিন্ন।
  • ignore_invalid_symbol(const bool) একটি ঐচ্ছিক আর্গুমেন্ট। যদি নির্দিষ্ট চিহ্নটি পাওয়া না যায় তবে ফাংশনের আচরণ নির্ধারণ করেঃ যদি মিথ্যা হয় তবে স্ক্রিপ্টটি থামবে এবং রানটাইম ত্রুটি ফিরিয়ে দেবে; যদি সত্য হয় তবে ফাংশনটি na ফিরিয়ে দেবে এবং কার্যকর করা অব্যাহত থাকবে। ডিফল্ট মানটি মিথ্যা।
  • currency(সরল স্ট্রিং) যে মুদ্রায় প্রতীকটির মুদ্রার সাথে সম্পর্কিত মান (যেমন OHLC) রূপান্তর করা হবে।expressionতারপর রূপান্তরিত মানগুলির উপর ভিত্তি করে গণনা করা হয়। ব্যবহৃত রূপান্তর হারগুলি পূর্ববর্তী দিনের FX_IDC জোড়া দৈনিক হারগুলির উপর ভিত্তি করে (যে বারের সাথে সম্পর্কিত যেখানে গণনা করা হয়) । ঐচ্ছিক। ডিফল্টটি syminfo.currency। সম্ভাব্য মানঃ আইএসও 4217 ফর্ম্যাটে মুদ্রা কোড সহ একটি তিন-অক্ষর স্ট্রিং (যেমন USD) বা মুদ্রার মধ্যে একটি ধ্রুবক। * নামস্থান, উদাহরণস্বরূপ মুদ্রা.USD।

মন্তব্যসমূহএই ফাংশন ব্যবহার করে পাইনস্ক্রিপ্ট কোড ইতিহাস এবং রিয়েল-টাইম ডেটা ভিন্নভাবে গণনা করতে পারে। আপনি যদি অনুরোধকৃত প্রতীকের জন্য অতিরিক্ত আর্গুমেন্ট নির্দিষ্ট করতে চান, যেমন সেশন বা সমন্বয় টাইপ, আপনি ব্যবহার করতে পারেনticker.new() ফাংশন। ticker ভেরিয়েবল ব্যবহার করে এই ফাংশনে স্প্রেড পাস করা সম্ভব নয়। আপনি ব্যবহার করতে পারেনticker.new ভেরিয়েবল বা টিকারের একটি স্ট্রিং উপস্থাপনা, যেমন AAPL+MSFT*TSLA। এই মুহূর্তে, একটি স্ক্রিপ্টে ৪০টি request.security কল উপস্থিত থাকতে পারে। অনুগ্রহ করে মনে রাখবেন যে এই ভেরিয়েবল/ফাংশন ব্যবহার করলে সূচকটি পুনরায় আঁকা হতে পারে।

রেজোলিউশন আর্গুমেন্টের অনুমোদিত মান হলঃ 1S, 5S, 15S, 30S - সেকেন্ডের ব্যবধানের জন্য (গ্রাফ রেজোলিউশনটি অনুরোধ করা রেজোলিউশনের চেয়ে কম বা সমান হওয়া উচিত) ১ থেকে ১৪৪০ মিনিট পর্যন্ত ১D থেকে ৩৬৫D পর্যন্ত ১ ওয়াট থেকে ৫২ ওয়াট পর্যন্ত কয়েক সপ্তাহ 1M থেকে 12M মাস ধরে

আরও দেখুন syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

true প্রদান করে যদিsourceস্ট্রিং ধারণ করেstrসাবস্ট্রিং, অন্যথায় মিথ্যা।

str.contains(source, str)

উদাহরণ

// If the current chart is a continuous futures chart, e.g "BTC1!", then the function will return true, false otherwise.
var isFutures = str.contains(syminfo.tickerid, "!")
plot(isFutures ? 1 : 0)

রিটার্নসত্য যদিstrপাওয়া গেছেsourceস্ট্রিং, অন্যথায় মিথ্যা.

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • str(সারি স্ট্রিং) অনুসন্ধান করার জন্য সাবস্ট্রিং.

আরও দেখুন str.pos str.match

str.endswith

true প্রদান করে যদিsourceস্ট্রিং শেষ হয় সাবস্ট্রিং দিয়েstrঅন্যথায় মিথ্যা।

str.endswith(source, str)

রিটার্নসত্য যদিsourceস্ট্রিং শেষ হয় সাবস্ট্রিং দিয়েstrঅন্যথায় মিথ্যা।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • str(সারি স্ট্রিং) অনুসন্ধান করার জন্য সাবস্ট্রিং.

আরও দেখুন str.startswith

str.startswith

true প্রদান করে যদিsourceস্ট্রিং শুরু হয় Substring দ্বারা নির্দিষ্টstrঅন্যথায় মিথ্যা।

str.startswith(source, str)

রিটার্নসত্য যদিsourceস্ট্রিং শুরু হয় Substring দ্বারা নির্দিষ্টstrঅন্যথায় মিথ্যা।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • str(সারি স্ট্রিং) অনুসন্ধান করার জন্য সাবস্ট্রিং.

আরও দেখুন str.endswith

str.substring

একটি নতুন স্ট্রিং ফেরত দেয় যা একটি সাবস্ট্রিংsourceসাবস্ট্রিং সূচক দ্বারা নির্ধারিত অক্ষর দিয়ে শুরু হয়begin_posএবং end_pos - 1 পর্যন্ত বিস্তৃতsource string.

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

উদাহরণ

sym= "EXCHANGE_NAME:SYMBOL_NAME"
pos = str.pos(sym, ":")        // Get position of ":" character
tkr= str.substring(sym, pos+1) // "SYMBOL_NAME"
if barstate.islastconfirmedhistory
    runtime.log(tkr)

রিটার্নসোর্স স্ট্রিং থেকে বের করা সাবস্ট্রিং।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং থেকে সাবস্ট্রিং বের করতে।
  • begin_pos(series int) এক্সট্রাক্ট করা সাবস্ট্রিং এর শুরুর অবস্থান। এটি অন্তর্ভুক্তিমূলক (এক্সট্রাক্ট করা সাবস্ট্রিং সেই অবস্থানে অক্ষর অন্তর্ভুক্ত করে) ।
  • end_pos(series int) শেষ অবস্থান. এটি একচেটিয়া (এক্সট্রাক্ট করা স্ট্রিংটি সেই অবস্থানs অক্ষর অন্তর্ভুক্ত করে না) । ঐচ্ছিক। ডিফল্ট হলsource string.

মন্তব্যসমূহস্ট্রিংয়ের সূচক 0 থেকে শুরু হয় যদিbegin_posসমানend_pos, ফাংশনটি একটি খালি স্ট্রিং প্রদান করে।

আরও দেখুন str.contains str.pos str.match

str.tonumber

str.tonumber(string)

রিটার্নস্ট্রিং এর একটি ফ্লোট সংস্করণ যদি এটি একটি বৈধ সংখ্যা ধারণ করে, অন্যথায় না।

যুক্তি

  • string(সারি স্ট্রিং) একটি int বা float এর স্ট্রিং উপস্থাপনা।

str.format

ফরম্যাটিং স্ট্রিং এবং মানগুলিকে ফরম্যাটেড স্ট্রিংয়ে রূপান্তর করে। ফরম্যাটিং স্ট্রিংটিতে প্রতিটি মানের জন্য আক্ষরিক পাঠ্য এবং কোঁকড়ানো বন্ধনীতে {} একটি প্লেসহোল্ডার থাকতে পারে। প্রতিটি প্লেসহোল্ডারে প্রয়োজনীয় আর্গুমেন্টের সূচক (০ থেকে শুরু করে) রয়েছে যা এটি প্রতিস্থাপন করবে, এবং একটি ঐচ্ছিক ফর্ম্যাট স্পেসিফায়ার। সূচকটি str.format আর্গুমেন্ট তালিকায় সেই আর্গুমেন্টের অবস্থানকে উপস্থাপন করে।

str.format(formatString, arg0, arg1, ...)

উদাহরণ

// The format specifier inside the curly braces accepts certain modifiers:
// - Specify the number of decimals to display:
s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3
runtime.log(s1)

// - Round a float value to an integer:
s2 = str.format("{0,number,integer}", 1.34) // returns: 1
runtime.log(s2)

// - Display a number in currency:
s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34
runtime.log(s3)

// - Display a number as a percentage:
s4 = str.format("{0,number,percent}", 0.5) // returns: 50%
runtime.log(s4)

// EXAMPLES WITH SEVERAL ARGUMENTS
// returns: Number 1 is not equal to 4
s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4)
runtime.log(s5)

// returns: 1.34 != 1.3
s6 = str.format("{0} != {0, number, #.#}", 1.34)
runtime.log(s6)

// returns: 1 is equal to 1, but 2 is equal to 2
s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52)
runtime.log(s7)

// returns: The cash turnover amounted to $1,340,000.00
s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000)
runtime.log(s8)

// returns: Expected return is 10% - 20%
s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2)
runtime.log(s9)

রিটার্নফরম্যাট করা স্ট্রিং।

যুক্তি

  • formatString(সিরিজ স্ট্রিং) ফরম্যাট স্ট্রিং.
  • arg0, arg1, ...(সারি int/float/bool/string/na/int[]/float[]/bool[]/string[]) ফরম্যাট করা মান।

মন্তব্যসমূহএকটি অ-উল্লিখিত প্যাটার্নের মধ্যে যে কোনও কোঁকড়ানো স্ট্র্যাপগুলি ভারসাম্যপূর্ণ হতে হবে। উদাহরণস্বরূপ, ab {0} de এবং ab } de বৈধ প্যাটার্ন, তবে ab {0} de, ab } de এবং { নয়।

str.length

যে স্ট্রিং এর অক্ষরের পরিমাণের সাথে সামঞ্জস্যপূর্ণ একটি পূর্ণসংখ্যা প্রদান করে।

str.length(string)

রিটার্নউৎস স্ট্রিং এর অক্ষরের সংখ্যা।

যুক্তি

  • string(সারি স্ট্রিং) উৎস স্ট্রিং.

str.lower

সমস্ত অক্ষরকে ছোট আকারে রূপান্তরিত করে একটি নতুন স্ট্রিং প্রদান করে।

str.lower(source)

রিটার্নসব অক্ষর ছোট আকারে রূপান্তরিত একটি নতুন স্ট্রিং.

যুক্তি

  • source(সারি স্ট্রিং) স্ট্রিং রূপান্তর করা হবে.

আরও দেখুন str.upper

str.upper

সব অক্ষরকে বড় আকারে রূপান্তরিত করে একটি নতুন স্ট্রিং প্রদান করে।

str.upper(source)

রিটার্নসব অক্ষর বড় অক্ষরে রূপান্তরিত একটি নতুন স্ট্রিং.

যুক্তি

  • source(সারি স্ট্রিং) স্ট্রিং রূপান্তর করা হবে.

আরও দেখুন str.lower

str.match

নতুন সাবস্ট্রিং ফেরত দেয়sourceস্ট্রিং যদি এটি একটি মেলেregexনিয়মিত অভিব্যক্তি, না অন্যথায়।

str.match(source, regex) 

উদাহরণ

s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!")

// finding first substring that matches regular expression "[\w]+:[\w]+"
var string tickerid = str.match(s, "[\\w]+:[\\w]+")

if barstate.islastconfirmedhistory
    runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"

রিটার্ননতুন সাবস্ট্রিংsourceস্ট্রিং যদি এটি একটি মেলেregexনিয়মিত অভিব্যক্তি, না অন্যথায়।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • regex(সারি স্ট্রিং) নিয়মিত এক্সপ্রেশন যার সাথে এই স্ট্রিংটি মেলে।

মন্তব্যসমূহফাংশন রিটার্ন প্রথম ঘটনার নিয়মিত অভিব্যক্তি মধ্যেsourceস্ট্রিং. ব্যাকস্ল্যাশ চিহ্নregexস্ট্রিং অতিরিক্ত ব্যাকস্ল্যাশ দিয়ে পালাতে হবে, উদাহরণস্বরূপ \d নিয়মিত অভিব্যক্তি \d এর জন্য দাঁড়িয়েছে।

আরও দেখুন str.contains str.substring

str.pos

প্রথম ঘটনার অবস্থান প্রদান করেstrমধ্যে স্ট্রিংsourcestring, na অন্যথায়.

str.pos(source, str)

রিটার্নরাষ্ট্রের অবস্থানstrমধ্যে স্ট্রিংsource string.

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • str(সারি স্ট্রিং) অনুসন্ধান করার জন্য সাবস্ট্রিং.

মন্তব্যসমূহস্ট্রিং ইন্ডেক্সিং শূন্য থেকে শুরু হয়।

আরও দেখুন str.contains str.match str.substring

str.replace

একটি নতুন স্ট্রিং N + 1th ঘটনার সাথে ফেরত দেয়targetস্ট্রিং এবং পূর্ববর্তী ঘটনাtargetস্ট্রিং দ্বারা প্রতিস্থাপিতreplacementstring, যেখানে N নির্দিষ্ট করা হয়occurrence. N হ'ল উৎস স্ট্রিংয়ে প্রতিস্থাপিত হবার লক্ষ্য স্ট্রিংয়ের মিলের সূচক।

str.replace(source, target, replacement, occurrence)

উদাহরণ

var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"

// Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string
var newSource = str.replace(source, "EXCHANGE1",  "EXCHANGE2", 0)

if barstate.islastconfirmedhistory
    // Display "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2"
    runtime.log(newSource)

রিটার্নপ্রক্রিয়াকৃত স্ট্রিং।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • target(সিরিজ স্ট্রিং) স্ট্রিং প্রতিস্থাপন করা হবে.
  • replacement(সিরিজ স্ট্রিং) লক্ষ্য স্ট্রিং এর পরিবর্তে স্ট্রিং সন্নিবেশ করানো হবে।
  • occurrence(series int) সোর্স স্ট্রিংয়ে প্রতিস্থাপিত লক্ষ্য স্ট্রিংয়ের উপস্থিতির মেলে এমন সূচক সূচক প্রথম মেলে 0 থেকে শুরু হয়। ঐচ্ছিক। ডিফল্ট মান 0।

আরও দেখুন str.replace_all str.match

str.replace_all

উৎস স্ট্রিং-এ লক্ষ্য স্ট্রিং-এর প্রতিটি ঘটনা প্রতিস্থাপন স্ট্রিং-এর সাথে প্রতিস্থাপন করে।

str.replace_all(source, target, replacement)

রিটার্নপ্রক্রিয়াকৃত স্ট্রিং।

যুক্তি

  • source(সারি স্ট্রিং) উৎস স্ট্রিং.
  • target(সিরিজ স্ট্রিং) স্ট্রিং প্রতিস্থাপন করা হবে.
  • replacement(সিরিজ স্ট্রিং) লক্ষ্য স্ট্রিং এর প্রতিটি ঘটনার জন্য প্রতিস্থাপন করা স্ট্রিং।

str.split

একটি স্ট্রিংকে সাবস্ট্রিংগুলির একটি অ্যারেতে বিভক্ত করে এবং এর অ্যারে আইডি প্রদান করে।

str.split(string, separator)

রিটার্নস্ট্রিং এর আইডি।

যুক্তি

  • string(সারি স্ট্রিং) উৎস স্ট্রিং.
  • separator(সিরিজ স্ট্রিং) প্রতিটি সাবস্ট্রিং পৃথক স্ট্রিং.

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

রিটার্নস্ট্রিং উপস্থাপনাvalueতর্ক। যদিvalueআর্গুমেন্ট একটি স্ট্রিং, এটি যেমন আছে তেমনই ফেরত দেওয়া হয়। যখনvalueis na, ফাংশনটি স্ট্রিং NaN প্রদান করে।

যুক্তি

  • value(series int/float/bool/string/int[]/float[]/bool[]/string[]) মান বা অ্যারে আইডি যার উপাদানগুলি একটি স্ট্রিংয়ে রূপান্তরিত হয়।
  • format(সিরিজ স্ট্রিং) বিন্যাস স্ট্রিং. এই বিন্যাস গ্রহণ করে.* ধ্রুবকঃ format.mintick, format.percent, format.volume. ঐচ্ছিক. ডিফল্ট মান #.##########.

মন্তব্যসমূহফ্লোট মানগুলির ফর্ম্যাটিং প্রয়োজনীয় হলে সেই মানগুলিও বৃত্তাকার করবে, উদাহরণস্বরূপ str.tostring ((3.99, #) 4 ফেরত দেবে। শেষ শূন্যগুলি প্রদর্শন করতে, # এর পরিবর্তে 0 ব্যবহার করুন। উদাহরণস্বরূপ, #.000। format.mintick ব্যবহার করার সময়, মানটি নিকটতম সংখ্যায় ঘূর্ণিত হবে যা বাকি ছাড়াই syminfo.mintick দ্বারা বিভক্ত করা যেতে পারে। স্ট্রিংটি পিছনের শূন্য দিয়ে ফিরে আসে। যদি x আর্গুমেন্টটি একটি স্ট্রিং হয়, তাহলে একই স্ট্রিং মান ফেরত দেওয়া হবে। বুল টাইপ আর্গুমেন্ট true বা false রিটার্ন করে। যখন x হয় na, তখন ফাংশন NaN প্রদান করে।

রঙ

color.new

ফাংশন রঙ প্রদত্ত রঙে নির্দিষ্ট স্বচ্ছতা প্রয়োগ করে।

color.new(color, transp)

উদাহরণ

plot(close, color=color.new(color.red, 50))

রিটার্ননির্দিষ্ট স্বচ্ছতার সাথে রঙ।

যুক্তি

  • color(সারি রঙ)
  • transp(series int/float) সম্ভাব্য মান 0 (অস্বচ্ছ) থেকে 100 (অদৃশ্য) পর্যন্ত।

মন্তব্যসমূহধ্রুবক নয় এমন আর্গুমেন্ট ব্যবহার করা (যেমন, simple, input বা series) স্ক্রিপ্টের Settings/Style ট্যাবে প্রদর্শিত রঙগুলিতে প্রভাব ফেলবে। আরও তথ্যের জন্য ব্যবহারকারী ম্যানুয়াল দেখুন।

color.rgb

আরজিবি রঙের মডেল ব্যবহার করে স্বচ্ছতার সাথে একটি নতুন রঙ তৈরি করে।

color.rgb(red, green, blue, transp)

উদাহরণ

plot(close, color=color.rgb(255, 0, 0, 50))

রিটার্ননির্দিষ্ট স্বচ্ছতার সাথে রঙ।

যুক্তি

  • red(সিরিজ int/float) লাল রঙের উপাদান। সম্ভাব্য মান 0 থেকে 255 পর্যন্ত।
  • green(সারি int/float) সবুজ রঙের উপাদান। সম্ভাব্য মান 0 থেকে 255 পর্যন্ত।
  • blue(সারি int/float) নীল রঙের উপাদান। সম্ভাব্য মান 0 থেকে 255 পর্যন্ত।
  • transp(সারি int/float) ঐচ্ছিক. রঙ স্বচ্ছতা. সম্ভাব্য মান 0 (অস্পষ্ট) থেকে 100 (অদৃশ্য) । ডিফল্ট মান 0।

মন্তব্যসমূহধ্রুবক নয় এমন আর্গুমেন্ট ব্যবহার করা (যেমন, simple, input বা series) স্ক্রিপ্টের Settings/Style ট্যাবে প্রদর্শিত রঙগুলিতে প্রভাব ফেলবে। আরও তথ্যের জন্য ব্যবহারকারী ম্যানুয়াল দেখুন।

রানটাইম

runtime.debug

কনসোলে ভেরিয়েবলের তথ্য মুদ্রণ করুন।

FMZ PINE ভাষার নির্দিষ্ট ফাংশন,runtime.debug(value), শুধু একটা যুক্তি দিয়ে।

runtime.log

লগ-এ আউটপুট সামগ্রী।

FMZ PINE ভাষার নির্দিষ্ট ফাংশন,runtime.log(1, 2, 3, close, high, ...), আপনি একাধিক আর্গুমেন্ট পাস করতে পারেন.

runtime.error

যখন কল করা হয়, তখন একটি রানটাইম ত্রুটির কারণ হয়message argument.

runtime.error(message)

যুক্তিবার্তা (সিরিজ স্ট্রিং) ত্রুটি বার্তা।

ইনপুট

ইনপুট

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি স্বয়ংক্রিয়ভাবে defval এর জন্য ব্যবহৃত আর্গুমেন্টের ধরন সনাক্ত করে এবং সংশ্লিষ্ট ইনপুট উইজেট ব্যবহার করে।

input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)

উদাহরণ

i_switch = input(true, "On/Off")     // Set true, the default is checked.
plot(i_switch ? open : na)

i_len = input(7, "Length")
i_src = input(close, "Source")       // Drop-down box, select close by default.
plot(ta.sma(i_src, i_len))

i_col = input(color.red, "Plot Color")
plot(close, color=i_col)

i_text = input("Hello!", "Message")
runtime.log(i_text)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const int/float/bool/string/color or source-type built-in) স্ক্রিপ্ট s Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে স্ক্রিপ্ট ব্যবহারকারীরা এটি পরিবর্তন করতে পারেন। সোর্স-টাইপ বিল্ট-ইনগুলি বিল্ট-ইন সিরিজ ফ্লোট ভেরিয়েবল যা গণনার উৎস নির্দিষ্ট করেঃclose, hlc3ইত্যাদি।
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।

মন্তব্যসমূহইনপুট ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে বরাদ্দ করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি একটি ড্রপডাউন যুক্ত করে যা ব্যবহারকারীকে গণনার জন্য একটি উত্স নির্বাচন করতে দেয়, যেমন বন্ধ, hl2, ইত্যাদি। যদি স্ক্রিপ্টটিতে কেবলমাত্র একটি ইনপুট.সোর্স() কল অন্তর্ভুক্ত থাকে তবে ব্যবহারকারী তাদের চার্টের অন্য সূচক থেকে উত্স হিসাবে একটি আউটপুট নির্বাচন করতে পারেন।

input.source(defval, title, tooltip, inline, group)

উদাহরণ

i_src = input.source(close, "Source")
plot(i_src)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(series int/float) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।

মন্তব্যসমূহইনপুট.সোর্স ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে নির্ধারিত করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.bool input.int input.float input.string input.timeframe input.color input

input.string

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি স্ক্রিপ্টের ইনপুটগুলিতে স্ট্রিং ইনপুটের জন্য একটি ক্ষেত্র যুক্ত করে।

input.string(defval, title, options, tooltip, inline, group, confirm)

উদাহরণ

i_text = input.string("Hello!", "Message")
runtime.log(i_text)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const string) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।optionsযুক্তি, মান তাদের মধ্যে একটি হতে হবে.
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • options(কনস্ট্যান্টের তালিকাঃ [< টাইপ>...]) বিকল্পগুলির একটি তালিকা।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি true হয়, তাহলে চার্টে সূচক যোগ করার আগে ব্যবহারকারীকে ইনপুট মানটি নিশ্চিত করতে বলা হবে। ডিফল্ট মানটি মিথ্যা।

মন্তব্যসমূহইনপুট.স্ট্রিং ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে নির্ধারণ করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.bool input.int input.float input.timeframe input.source input.color input

input.bool

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি স্ক্রিপ্টের ইনপুটগুলিতে একটি চেকমার্ক যুক্ত করে।

input.bool(defval, title, tooltip, inline, group, confirm)

উদাহরণ

i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const bool) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি true হয়, তাহলে চার্টে সূচক যোগ করার আগে ব্যবহারকারীকে ইনপুট মানটি নিশ্চিত করতে বলা হবে। ডিফল্ট মানটি মিথ্যা।

মন্তব্যসমূহইনপুট.বুল ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে বরাদ্দ করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.int input.float input.string input.timeframe input.source input.color input

input.int

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি স্ক্রিপ্টের ইনপুটগুলিতে একটি পূর্ণসংখ্যা ইনপুটের জন্য একটি ক্ষেত্র যুক্ত করে।

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm) 
input.int(defval, title, options, tooltip, inline, group, confirm)

উদাহরণ

i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1)
plot(ta.sma(close, i_len1))

i_len2 = input.int(10, "Length 2", options=[5, 10, 21])
plot(ta.sma(close, i_len2))

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const int) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে স্ক্রিপ্ট ব্যবহারকারীরা এটি পরিবর্তন করতে পারেন। যখন স্ক্রিপ্টের সাথে মানের একটি তালিকা ব্যবহার করা হয়optionsযুক্তি, মান তাদের মধ্যে একটি হতে হবে.
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • minval(const int) ইনপুট ভেরিয়েবলের সর্বনিম্ন সম্ভাব্য মান। ঐচ্ছিক।
  • maxval(const int) ইনপুট ভেরিয়েবলের সর্বোচ্চ সম্ভাব্য মান। ঐচ্ছিক।
  • step(const int) ইনপুট বৃদ্ধি / হ্রাস করার জন্য ব্যবহৃত পদক্ষেপ মান। ঐচ্ছিক। ডিফল্ট হল 1।
  • options[val1, val2,...]) একটি ড্রপডাউন মেনু থেকে বেছে নেওয়ার জন্য বিকল্পগুলির একটি তালিকা, কমা দ্বারা পৃথক এবং বর্গাকার বন্ধনীতে আবদ্ধঃ [val1, val2,...] এই যুক্তি ব্যবহার করার সময়,minval, maxvalএবংstepআর্গুমেন্ট ব্যবহার করা যাবে না.
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি true হয়, তাহলে চার্টে সূচক যোগ করার আগে ব্যবহারকারীকে ইনপুট মানটি নিশ্চিত করতে বলা হবে। ডিফল্ট মানটি মিথ্যা।

মন্তব্যসমূহএর ফলাফলinput.intফাংশন সবসময় একটি পরিবর্তনশীল বরাদ্দ করা উচিত, উপরে উদাহরণ দেখুন।

আরও দেখুন input.bool input.float input.string input.timeframe input.source input.color input

input.float

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি স্ক্রিপ্টের ইনপুটগুলিতে একটি ভাসমান ইনপুটের জন্য একটি ক্ষেত্র যুক্ত করে।

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

উদাহরণ

i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02)
plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green)

i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14])
plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const int/float) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে স্ক্রিপ্ট ব্যবহারকারীরা এটি পরিবর্তন করতে পারেন।optionsযুক্তি, মান তাদের মধ্যে একটি হতে হবে.
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • minval(const int/float) ইনপুট ভেরিয়েবলের সর্বনিম্ন সম্ভাব্য মান। ঐচ্ছিক।
  • maxval(const int/float) ইনপুট ভেরিয়েবলের সর্বোচ্চ সম্ভাব্য মান। ঐচ্ছিক।
  • step(const int/float) ইনপুট বাড়াতে বা হ্রাস করতে ব্যবহৃত ধাপের মান। ঐচ্ছিক। ডিফল্ট হল 1.
  • options(const int/float values এর টিপলঃ [val1, val2,...]) একটি ড্রপডাউন মেনু থেকে বেছে নেওয়ার জন্য বিকল্পগুলির একটি তালিকা, কমা দ্বারা পৃথক এবং বর্গাকার বন্ধনীতে সংযুক্তঃ [val1, val2,...] এই যুক্তি ব্যবহার করার সময়,minval, maxvalএবংstepআর্গুমেন্ট ব্যবহার করা যাবে না.
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি true হয়, তাহলে চার্টে সূচক যোগ করার আগে ব্যবহারকারীকে ইনপুট মানটি নিশ্চিত করতে বলা হবে। ডিফল্ট মানটি মিথ্যা।

মন্তব্যসমূহইনপুট.ফ্লট ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে বরাদ্দ করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.bool input.int input.string input.timeframe input.source input.color input

input.color

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যোগ করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি একটি রঙ পিকার যুক্ত করে যা ব্যবহারকারীকে একটি প্যালেট বা হেক্স মান থেকে একটি রঙ এবং স্বচ্ছতা নির্বাচন করতে দেয়।

input.color(defval, title, tooltip, inline, group, confirm) 

উদাহরণ

i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const color) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি true হয়, তাহলে চার্টে সূচক যোগ করার আগে ব্যবহারকারীকে ইনপুট মানটি নিশ্চিত করতে বলা হবে। ডিফল্ট মানটি মিথ্যা।

মন্তব্যসমূহইনপুট.কলার ফাংশনের ফলাফল সর্বদা একটি ভেরিয়েবলকে নির্ধারণ করা উচিত, উপরের উদাহরণগুলি দেখুন।

আরও দেখুন input.bool input.int input.float input.string input.timeframe input.source input

input.price

স্ক্রিপ্টের Settings/Inputs ট্যাবে একটি মূল্য ইনপুট যোগ করে।confirm = trueচার্টে ক্লিক করে একটি মূল্য নির্বাচন করা হয় যেখানে ইন্টারেক্টিভ ইনপুট মোড সক্রিয় করে।

input.price(defval, title, tooltip, inline, group, confirm) 

উদাহরণ

price1 = input.price(title="Date", defval=42)
plot(price1)

price2 = input.price(54, title="Date")
plot(price2)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const int/float) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • tooltip(const string) যে স্ট্রিংটি ব্যবহারকারীর কাছে দেখানো হবে যখন টুলটিপ আইকনের উপর হিভার করা হবে।
  • inline(const string) একটি লাইনে একই আর্গুমেন্ট ব্যবহার করে সমস্ত ইনপুট কল একত্রিত করে। একটি আর্গুমেন্ট হিসাবে ব্যবহৃত স্ট্রিং প্রদর্শিত হয় না। এটি শুধুমাত্র একই লাইনের অন্তর্গত ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
  • group(const string) একই গ্রুপ আর্গুমেন্ট স্ট্রিং ব্যবহার করে সমস্ত ইনপুটের উপরে একটি শিরোনাম তৈরি করে। স্ট্রিংটি শিরোনামের পাঠ্য হিসাবেও ব্যবহৃত হয়।
  • confirm(const bool) যদি সত্য হয়, ইন্টারেক্টিভ ইনপুট মোড সক্ষম করা হয় এবং চার্টে নির্দেশক যোগ করার সময় চার্টে ক্লিক করে বা নির্দেশক নির্বাচন করে এবং তারপরে নির্বাচনটি সরিয়ে দিয়ে নির্বাচন করা হয়। ঐচ্ছিক। ডিফল্টটি মিথ্যা।

মন্তব্যসমূহইন্টারেক্টিভ মোড ব্যবহার করার সময়, একটি সময় ইনপুট একটি মূল্য ইনপুট সঙ্গে একত্রিত করা যেতে পারে যদি উভয় ফাংশন কল তাদের জন্য একই যুক্তি ব্যবহার করেinline argument.

আরও দেখুন input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

আপনার স্ক্রিপ্টের সেটিংসের ইনপুট ট্যাবে একটি ইনপুট যুক্ত করে, যা আপনাকে স্ক্রিপ্ট ব্যবহারকারীদের কনফিগারেশন বিকল্পগুলি সরবরাহ করতে দেয়। এই ফাংশনটি একটি ড্রপডাউন যুক্ত করে যা ব্যবহারকারীকে টাইমফ্রেম নির্বাচকের মাধ্যমে একটি নির্দিষ্ট সময়সীমা নির্বাচন করতে দেয় এবং এটি একটি স্ট্রিং হিসাবে ফেরত দেয়। নির্বাচকটিতে ব্যবহারকারী চার্টটি ব্যবহার করে কাস্টম টাইমফ্রেমগুলি অন্তর্ভুক্ত থাকতে পারে।

input.timeframe(defval, title, options, tooltip, inline, group, confirm)

উদাহরণ

i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security("syminfo.tickerid", i_res, close)
plot(s)

রিটার্নইনপুট ভেরিয়েবলের মান।

যুক্তি

  • defval(const string) স্ক্রিপ্টের Settings/Inputs ট্যাবে প্রস্তাবিত ইনপুট ভেরিয়েবলের ডিফল্ট মান নির্ধারণ করে, যেখানে থেকে ব্যবহারকারী এটি পরিবর্তন করতে পারেন।optionsযুক্তি, মান তাদের মধ্যে একটি হতে হবে.
  • title(const string) ইনপুট শিরোনাম। যদি নির্দিষ্ট না করা হয়, ভেরিয়েবল নাম ইনপুট শিরোনাম হিসাবে ব্যবহৃত হয়। যদি শিরোনাম নির্দিষ্ট করা হয়, কিন্তু এটি খালি, নাম একটি খালি স্ট্রিং হবে।
  • options(টপ)

আরো

ভিক্ষুককেন কৌশল স্কোয়ার অনুলিপি পাইন কৌশল বাস্তবায়ন করতে পারে না

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নঠিক আছে, আমরা পরীক্ষা করে দেখি।

ভিক্ষুকচ্যাং সুপারড্যাং এর অপ্টিমাইজড ট্রেন্ড ট্র্যাকার

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নহ্যালো, কোন কৌশলটি আপনি ব্যবহার করছেন?