وسائل لوڈ ہو رہے ہیں... لوڈنگ...

بازار

exchange.GetTicker

{@struct/Ticker Ticker} اسپاٹ یا معاہدے کی ساخت حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی ٹکر ڈیٹا سے مطابقت رکھتا ہے.GetTicker ()تقریب تبادلہ اعتراض {@var/EXCHANGE تبادلہ} کا ایک رکن تقریب ہے، کے استعمالexchangeصرف سے متعلقہ اعتراض رکن افعال (طریقے)exchange، اور یہ دستاویز میں دہرایا نہیں جائے گا.

کےexchange.GetTicker()فنکشن {@struct/Ticker Ticker} ڈھانچہ واپس کرتا ہے جب ڈیٹا کی درخواست کامیاب ہوتی ہے ، اور ڈیٹا کی درخواست ناکام ہونے پر null قدر واپس کرتا ہے۔ {@struct/Ticker Ticker}، null قدر

تبادلہ.GetTicker() تبادلہ.GetTicker ((علامت)

پیرامیٹرsymbol{@struct/Ticker Ticker} ڈیٹا کی درخواست کے مطابق مخصوص ٹریڈنگ جوڑی اور معاہدے کا کوڈ متعین کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر پاس نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی مارکیٹ کے اعداد و شمار کی درخواست کی جائے گی۔ جب کال کریںexchange.GetTicker(symbol)فنکشنexchangeاسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو مارکیٹ کے اعداد و شمار کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹریڈنگ کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbolہے:"BTC_USDT"، اور یہ فارمیٹ ایف ایم زیڈ پلیٹ فارم کے ذریعہ طے شدہ ٹریڈنگ جوڑی فارمیٹ ہے۔ جب کال کریںexchange.GetTicker(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری دائمی معاہدے کے مارکیٹ ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.swap"، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس کو علامت . سے الگ کیا گیا ہے۔ جب کال کریںexchange.GetTicker(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے مارکیٹ ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.BTC-240108-40000-C"(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت . سے الگ کیا گیا ہے۔

علامت غلط سٹرنگ

function main(){
    // If it is a futures exchange object, set the contract code first, e.g. set it as a perpetual contract
    // exchange.SetContractType("swap")

    var ticker = exchange.GetTicker()
    /*
        The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
        At this point, the ticker is null, and it will cause an error when accessing ticker.High, so when testing this code, make sure that the exchange interface can be accessed.
    */
    Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume)
}
def main():
    ticker = exchange.GetTicker()
    Log("Symbol:", ticker["Symbol"], "High:", ticker["High"], "Low:", ticker["Low"], "Sell:", ticker["Sell"], "Buy:", ticker["Buy"], "Last:", ticker["Last"], "Open:", ticker.Open, "Volume:", ticker["Volume"])
void main() {
    auto ticker = exchange.GetTicker();
    Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume);
}

فیوچر ایکسچینج اشیاء کے لئے (یعنیexchangeیاexchanges[0]), آپ کو استعمال کرتے ہوئے معاہدے کا کوڈ مقرر کرنے کی ضرورتexchange.SetContractType()ٹکر فنکشن کو کال کرنے سے پہلے، جو بار بار نہیں کیا جائے گا.

function main() {
    var ticker = exchange.GetTicker("BTC_USDT")
    Log(ticker)
}
def main():
    ticker = exchange.GetTicker("BTC_USDT")
    Log(ticker)
void main() {
    auto ticker = exchange.GetTicker("BTC_USDT");
    Log(ticker);
}

استعمال کریںsymbolایک مخصوص علامت (اسپاٹ علامت) کے لئے مارکیٹ کے اعداد و شمار کی درخواست کرنے کے لئے پیرامیٹر.

کےTickerڈیٹا واپس کیاexchange.GetTicker()backtesting کے نظام میں کام.HighاورLowایک فروخت اور اس وقت کی مارکیٹ میں ایک خریدنے سے لیا، کی طرف سے سمیلیٹ اقدار ہیں.Tickerڈیٹا واپس کیاexchange.GetTicker()حقیقی مارکیٹ میں کام.HighاورLowاقدار کی بنیاد پر ہیں کے اعداد و شمار کی واپسی کی طرف سے encapsulated تبادلہTickانٹرفیس، جس میں ایک مخصوص مدت (عام طور پر ایک 24 گھنٹے کی مدت) کے اندر اندر سب سے زیادہ اور سب سے کم قیمت شامل ہے. تبادلے جو حمایت نہیں کرتےexchange.GetTicker()فنکشن:

فنکشن کا نام غیر تعاون یافتہ اسپاٹ ایکسچینجز غیر معاون فیوچر ایکسچینج
گیٹ ٹکر فیوچر_ایوو

{@fun/Market/exchange.GetDepth exchange.GetDepth}، {@fun/Market/exchange.GetTrades exchange.GetTrades}، {@fun/Market/exchange.GetRecords exchange.GetRecords}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange

exchange.GetDepth

{@struct/Depth Depth} اسپاٹ یا معاہدے کی ساخت حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی آرڈر بک کے اعداد و شمار سے مطابقت رکھتا ہے.

کےexchange.GetDepth()فنکشن {@struct/Depth Depth} ڈھانچہ لوٹاتا ہے اگر ڈیٹا کی درخواست کامیاب ہو، اور اگر ڈیٹا کی درخواست ناکام ہو تو یہ null لوٹاتا ہے۔ {@struct/Depth Depth}، صفر قدر

تبادلہ.GetDepth() تبادلہ.گٹ گہرائی ((علامت)

پیرامیٹرsymbol{@struct/Depth Depth} ڈیٹا کی درخواست کے مطابق مخصوص ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کے آرڈر بک کے اعداد و شمار کی درخواست کی جائے گی۔exchange.GetDepth(symbol)فنکشنexchangeاسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو آرڈر بک ڈیٹا حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹرانزیکشن کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbolہے:"BTC_USDT"، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetDepth(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری دائمی معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.swap"، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف . کی طرف سے الگ کیا جاتا ہے.exchange.GetDepth(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.BTC-240108-40000-C"(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت . سے الگ کیا گیا ہے۔ علامت غلط سٹرنگ

function main(){
    var depth = exchange.GetDepth()
    /*
        The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
        At this point, the depth is null, which will cause an error when accessing depth.Asks[1].Price, so make sure you can access the exchange interface when testing the code.
    */
    var price = depth.Asks[1].Price
    Log("Sell 2 price is:", price)
}
def main():
    depth = exchange.GetDepth()
    price = depth["Asks"][1]["Price"]
    Log("Sell 2 price is:", price)
void main() {
    auto depth = exchange.GetDepth();
    auto price = depth.Asks[1].Price;
    Log("Sell 2 price is:", price);
}

ٹیسٹexchange.GetDepth()فنکشن:

function main() {
    // BTC U-based perpetual contract
    var depth = exchange.GetDepth("BTC_USDT.swap")
    Log(depth)
}
def main():
    depth = exchange.GetDepth("BTC_USDT.swap")
    Log(depth)
void main() {
    auto depth = exchange.GetDepth("BTC_USDT.swap");
    Log(depth);
}

جب تشکیل شدہexchangeآبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbolایک مخصوص علامت (فيوچر علامت) کے آرڈر بک کے اعداد و شمار کی درخواست کرنے کے لئے پیرامیٹر.

بیک ٹسٹنگ سسٹم میں، ہر گریڈ کے لئے اعداد و شمارexchange.GetDepth()استعمال کرتے وقتٹِک کا مشابہتbacktesting تمام نمونے کے اقدار ہیں. backtesting کے نظام میں، اعداد و شمار کی طرف سے واپسexchange.GetDepth()استعمال کرتے وقتاصلی ٹِکbacktesting ایک دوسری سطح گہری تصویر ہے.

{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetTrades تبادلہ.GetTrades}، {@fun/Market/exchange.GetRecords تبادلہ.GetRecords}

exchange.GetTrades

{@struct/Trade Trade} اسپاٹ یا معاہدے کی ساخت کی صف حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی مارکیٹ ٹرانزیکشن کے اعداد و شمار سے مطابقت رکھتا ہے.

کےexchange.GetTrades()فنکشن {@struct/Trade Trade} ڈھانچے کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو، اور اگر ڈیٹا کی درخواست ناکام ہو تو یہ صفر اقدار واپس کرتا ہے. {@struct/Trade Trade} صفیں، خالی اقدار

تبادلہ.GetTrades() تبادلہ.GetTrades (علامت)

پیرامیٹرsymbolمخصوص ٹریڈنگ جوڑی اور معاہدہ کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جو مطلوبہ {@struct/Trade Trade} صف کے اعداد و شمار کے مطابق ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدہ کوڈ کے تازہ ترین ٹرانزیکشن ریکارڈ کے اعداد و شمار کی پیشگی درخواست کی جائے گی۔exchange.GetTrades(symbol)فنکشنexchangeاسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو آرڈر بک کے اعداد و شمار حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹریڈنگ کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbolہے:"BTC_USDT"، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetTrades(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری دائمی معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.swap"، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف . کی طرف سے الگ کیا جاتا ہے.exchange.GetTrades(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.BTC-240108-40000-C"(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت . سے الگ کیا گیا ہے۔ علامت غلط سٹرنگ

function main(){
    var trades = exchange.GetTrades()
    /*
        The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
        At this point, trade is null. When accessing trade[0].Id, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
    */
    Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type)
}
def main():
    trades = exchange.GetTrades()
    Log("id:", trades[0]["Id"], "time:", trades[0]["Time"], "Price:", trades[0]["Price"], "Amount:", trades[0]["Amount"], "type:", trades[0]["Type"])
void main() {
    auto trades = exchange.GetTrades();
    Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type);
}

ٹیسٹ کریںexchange.GetTrades()فنکشن:

function main() {
    // BTC's U-based perpetual contract
    var trades = exchange.GetTrades("BTC_USDT.swap")
    Log(trades)
}
def main():
    trades = exchange.GetTrades("BTC_USDT.swap")
    Log(trades)
void main() {
    auto trades = exchange.GetTrades("BTC_USDT.swap");
    Log(trades);
}

جب تشکیل شدہexchangeآبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbolایک مخصوص علامت (فيوچر علامت) کے لئے مارکیٹ ٹرانزیکشن ریکارڈ ڈیٹا کی درخواست کرنے کا پیرامیٹر۔

exchange.GetTrades()موجودہ تجارتی جوڑے ، مارکیٹ کی ٹرانزیکشن ہسٹری (اپنی نہیں) کے مطابق معاہدوں کو حاصل کرنے کے لئے فنکشن۔ کچھ تبادلے اس فنکشن کی حمایت نہیں کرتے ہیں ، اور مخصوص ڈیٹا واپس کیا جاتا ہے کہ ٹرانزیکشن ریکارڈ کی حد کا کتنا حصہ تبادلہ پر منحصر ہے اور مخصوص صورتحال کے مطابق اس سے نمٹنے کی ضرورت ہے۔ واپسی کا ڈیٹا ایک صف ہے ، جہاں ہر عنصر کی تاریخی ترتیب اورexchange.GetRecords ()فنکشن اعداد و شمار کا ایک ہی ترتیب واپس کرتا ہے، یعنی صف کا آخری عنصر موجودہ وقت کے قریب ترین ڈیٹا ہے۔ کےexchange.GetTrades()فنکشن کا استعمال کرتے ہوئے ایک خالی صف لوٹاتا ہےٹِک کا مشابہتbacktesting کے نظام میں backtesting.exchange.GetTrades()استعمال کرتے وقتاصلی ٹِکبیک ٹسٹنگ سسٹم میں بیک ٹسٹنگ آرڈر فلو اسنیپ شاٹ ڈیٹا ہے، یعنی {@struct/Trade Trade} ڈھانچہ صف۔ تبادلے جو حمایت نہیں کرتےexchange.GetTrades()فنکشن:

فنکشن کا نام غیر تعاون یافتہ اسپاٹ ایکسچینجز غیر معاون فیوچر ایکسچینج
گیٹ ٹریڈز فیوچر_بٹ مارٹ / فیوچر_بی باکس

{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetDepth تبادلہ.GetDepth}، {@fun/Market/exchange.GetRecords تبادلہ.GetRecords}

exchange.GetRecords

{@struct/Record Record} اسپاٹ یا معاہدے کی ساخت کی صف حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی K لائن ڈیٹا سے مطابقت رکھتا ہے.

کےexchange.GetRecords()فنکشن {@struct/Record Record} ڈھانچے کی ایک صف واپس کرتا ہے جب ڈیٹا کی درخواست کامیاب ہوتی ہے ، اور جب ڈیٹا کی درخواست ناکام ہوجاتی ہے تو یہ صفر اقدار واپس کرتا ہے۔ {@struct/Record Record} صفیں، خالی اقدار

تبادلہ.GetRecords() تبادلہ.GetRecords ((علامت) تبادلہ.GetRecords ((علامت، نقطہ) exchange.GetRecords ((علامت، مدت، حد) تبادلہ.GetRecords (معیاد) تبادلہ.GetRecords ((مدت، حد)

پیرامیٹرsymbolمخصوص ٹریڈنگ جوڑی اور معاہدہ کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جو مطلوبہ {@struct/Record Record} صف کے اعداد و شمار کے مطابق ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی K لائن ڈیٹا ڈیفالٹ کے مطابق طلب کیا جائے گا۔exchange.GetRecords(symbol)فنکشنexchangeاسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو USDT کے طور پر نامزد کرنسی اور BTC کے طور پر ٹرانزیکشن کرنسی کے ساتھ ڈیٹا حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT"، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetRecords(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری دائمی معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.swap"، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف . کی طرف سے الگ کیا جاتا ہے.exchange.GetRecords(symbol)فنکشنexchangeفیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbolہے:"BTC_USDT.BTC-240108-40000-C"(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت . سے الگ کیا گیا ہے۔ علامت غلط سٹرنگ پیرامیٹرperiodمطلوبہ K لائن ڈیٹا کی مدت کی وضاحت کرتا ہے، مثال کے طور پر: {@var/PERIOD/PERIOD_M1 PERIOD_M1}، {@var/PERIOD/PERIOD_M5 PERIOD_M5}، {@var/PERIOD/PERIOD_M15 PERIOD_M15} وغیرہ۔ پیرامیٹر کی قیمتperiodنہ صرف طے شدہ معیاری مدت ، بلکہ سیکنڈ میں عددی اقدار کو بھی پاس کیا جاسکتا ہے۔ اگر یہ پیرامیٹر پاس نہیں کیا جاتا ہے تو ، ڈیفالٹ کے ذریعہ درخواست کردہ K- لائن ڈیٹا کی مدت موجودہ حکمت عملی ریئل ٹائم / بیک ٹسٹ ترتیب کی ڈیفالٹ K- لائن مدت ہے۔ مدت غلط نمبر پیرامیٹرlimitمطلوبہ K- لائن ڈیٹا کی لمبائی کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، ڈیفالٹ درخواست کی لمبائی تبادلہ K- لائن انٹرفیس کے وقت درخواست کردہ K- لائن باروں کی زیادہ سے زیادہ تعداد ہے۔ اس پیرامیٹر کی وجہ سے تبادلہ K- لائن ڈیٹا سے استفسار کرنے کے لئے پیجنگ ہوسکتی ہے ، اور پیجنگ استفسار کے دوران فنکشن کال کا وقت کی کھپت بڑھ جائے گی۔ حد غلط نمبر

function main() {
    // Print K-line data with a K-line period of 120 seconds (2 minutes)
    Log(exchange.GetRecords(60 * 2))         
    // Print K-line data with a K-line period of 5 minutes
    Log(exchange.GetRecords(PERIOD_M5))      
}
def main():
    Log(exchange.GetRecords(60 * 2))
    Log(exchange.GetRecords(PERIOD_M5))
void main() {
    Log(exchange.GetRecords(60 * 2)[0]);
    Log(exchange.GetRecords(PERIOD_M5)[0]);
}

ایک اپنی مرضی کے مطابق مدت کے لئے K لائن ڈیٹا حاصل کریں.

function main() {
    var records = exchange.GetRecords(PERIOD_H1)
    /*
        The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
        At this point, records is null. When accessing records[0].Time, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
    */
    Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High)
    Log("The second k-line data is Time:", records[1].Time ,"Close:", records[1].Close)
    Log("Current K-line (latest)", records[records.length-1], "Previous K-line", records[records.length-2])
}
def main():
    records = exchange.GetRecords(PERIOD_H1)
    Log("The first k-line data is Time:", records[0]["Time"], "Open:", records[0]["Open"], "High:", records[0]["High"])
    Log("The second k-line data Time:", records[1]["Time"], "Close:", records[1]["Close"])
    Log("Current K-line (latest)", records[-1], "Previous K-line", records[-2])
void main() {
    auto records = exchange.GetRecords(PERIOD_H1);
    Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High);
    Log("The second k-line data Time:", records[1].Time, "Close:", records[1].Close);
    Log("Current K-line (latest)", records[records.size() - 1], "Previous K-line", records[records.size() - 2]);
}

آؤٹ پٹ K لائن بار ڈیٹا:

function main() {
    var records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
    Log(records)
}
def main():
    records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
    Log(records)
void main() {
    auto records = exchange.GetRecords("BTC_USDT.swap", 60, 100);
    Log(records);
}

جب تشکیل شدہexchangeآبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbol, period، اورlimitایک مخصوص مصنوعات (مستقبل کی مصنوعات) کے K لائن ڈیٹا کی درخواست کرنے کے لئے پیرامیٹرز.

پہلے سے طے شدہ K لائن مدت backtest اور حقیقی ٹریڈنگ صفحات میں مقرر کیا جا سکتا ہے.exchange.GetRecords()فنکشن ، اس پیرامیٹر مدت سے متعلق K لائن ڈیٹا حاصل کیا جائے گا۔ اگر فنکشن کو بلانے پر کوئی پیرامیٹر متعین نہیں کیا جاتا ہے تو ، بیک ٹیسٹ اور حقیقی مارکیٹ پیرامیٹرز میں طے شدہ K لائن مدت کے مطابق متعلقہ K لائن ڈیٹا واپس کیا جائے گا۔ واپسی کی قیمت کی ایک صف ہےRecordڈھانچے، واپس K لائن کے اعداد و شمار وقت کے ساتھ ساتھ جمع کیا جائے گا، جمع K لائن سلاخوں کی اوپری حد کی طرف سے متاثر کیا جاتا ہےexchange.SetMaxBarLen()فنکشن کی ترتیب۔ ڈیفالٹ کی حد 5000 بار ہے جب یہ مقرر نہیں ہوتی ہے۔ جب K لائن ڈیٹا K لائن بار جمع کرنے کی حد تک پہنچ جاتا ہے تو ، اسے K لائن بار شامل کرکے اور سب سے پہلے K لائن بار کو حذف کرکے اپ ڈیٹ کیا جائے گا (جیسے قطار میں / باہر) ۔ کچھ تبادلے K لائن انٹرفیس فراہم نہیں کرتے ہیں ، لہذا ڈوکر مارکیٹ ٹرانزیکشن ریکارڈ ڈیٹا اکٹھا کرتا ہے (Tradeمنظم صف) حقیقی وقت میں K لائنز پیدا کرنے کے لئے. اگر ایکسچینج کے K- لائن انٹرفیس پیجنگ سوالات کی حمایت کرتا ہے تو ، متعدد API درخواستیں کال کرنے پر کی جائیں گیexchange.SetMaxBarLen()ایک بڑی K لائن کی لمبائی مقرر کرنے کے لئے تقریب. جبexchange.GetRecords()فنکشن کو ابتدائی طور پر بلایا جاتا ہے تو ، بیک ٹیسٹنگ اور حقیقی تجارت کے درمیان حاصل کردہ K- لائن باروں کی تعداد مختلف ہوتی ہے۔ - بیک ٹیسٹنگ سسٹم بیک ٹیسٹنگ ٹائم رینج کے آغاز سے پہلے ہی ایک خاص تعداد میں K- لائن بار حاصل کرے گا (ڈیفالٹ 5000 ہے ، بیک ٹیسٹنگ سسٹم کی ترتیبات اور اعداد و شمار کی مقدار حتمی تعداد کو متاثر کرے گی) ، جیسا کہ ابتدائی K- لائن ڈیٹا۔ - اصل تجارت کے دوران حاصل کردہ K- لائن باروں کی تعداد اس اعداد و شمار کی زیادہ سے زیادہ مقدار پر مبنی ہے جو ایکسچینج کے K- لائن انٹرفیس سے حاصل کی جاسکتی ہے۔ کےperiodپیرامیٹر 5 پر مقرر کیا جاتا ہے، جو 5 سیکنڈ کے ایک مدت کے ساتھ K لائن کے اعداد و شمار حاصل کرنے کے لئے ایک درخواست ہے.periodپیرامیٹر 60 سے تقسیم نہیں ہوتا ہے (یعنی ، جس مدت کی نمائندگی کی جاتی ہے وہ منٹوں میں تقسیم نہیں ہوتی ہے۔ بنیادی نظام کے متعلقہ انٹرفیس کا استعمال کرتا ہےexchange.GetTrades()ٹرانزیکشن ریکارڈ کے اعداد و شمار حاصل کرنے اور مطلوبہ K- لائن کے اعداد و شمار کا تجزیہ کرنے کے لئے.periodپیرامیٹر 60 سے تقسیم کیا جاتا ہے، تو مطلوبہ K لائن کے اعداد و شمار کو کم از کم 1 منٹ کے K لائن کے اعداد و شمار کا استعمال کرتے ہوئے ترکیب کیا جاتا ہے (اگر ممکن ہو تو، مطلوبہ K لائن کے اعداد و شمار کو زیادہ مدت کا استعمال کرتے ہوئے ترکیب کیا جاتا ہے). بیک ٹیسٹنگ سسٹم میں تخروپن سطح کی بیک ٹیسٹنگ کے لئے بنیادی K لائن مدت کی ترتیب کی ضرورت ہوتی ہے (جب بیک ٹیسٹنگ سسٹم سطح کی بیک ٹیسٹنگ کی نقالی کرتا ہے تو ، اسی کے مطابق K لائن کے اعداد و شمار کو سیٹ کے بنیادی K لائن مدت کے مطابق ٹِک ڈیٹا تیار کرنے کے لئے استعمال کیا جاتا ہے) ۔ یہ نوٹ کیا جانا چاہئے کہ حکمت عملی میں حاصل کردہ K لائن کے اعداد و شمار کی مدت بنیادی K لائن مدت سے کم نہیں ہونی چاہئے۔ کیونکہ تخروپن سطح کی بیک ٹیسٹنگ میں ، بیک ٹیسٹنگ سسٹم میں ہر مدت کے K لائن کے اعداد و شمار کو بنیادی K لائن مدت کے K لائن کے اعداد و شمار سے ترکیب کیا جاتا ہے۔ کےC++زبان مندرجہ ذیل کوڈ مثال ہے اگر آپ کو آپ کے اپنے K لائن ڈیٹا کی تعمیر کرنے کی ضرورت ہے:

#include <sstream>
void main() { 
    Records r;
    r.Valid = true;
    for (auto i = 0; i < 10; i++) {
        Record ele;
        ele.Time = i * 100000;
        ele.High = i * 10000;
        ele.Low = i * 1000;
        ele.Close = i * 100;
        ele.Open = i * 10;
        ele.Volume = i * 1;
        r.push_back(ele);
    }
    // Output display: Records[10]
    Log(r);                      
    auto ma = TA.MA(r,10);       
    // Output display: [nan,nan,nan,nan,nan,nan,nan,nan,nan,450]
    Log(ma);                     
}

تبادلے جو حمایت نہیں کرتےexchange.GetRecords()فنکشن:

فنکشن کا نام غیر تعاون یافتہ اسپاٹ ایکسچینجز غیر معاون فیوچر ایکسچینج
ریکارڈ حاصل کریں Zaif / Coincheck / BitFlyer فیوچر_ایوو

{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetDepth تبادلہ.GetDepth}، {@fun/Market/exchange.GetTrades تبادلہ.GetTrades}، {@fun/Market/exchange.SetMaxBarLen تبادلہ.SetMaxBarLen}

exchange.GetPeriod

براہ راست ٹریڈنگ میں حکمت عملی کی بیک ٹیسٹنگ اور چلانے کے دوران ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم ویب سائٹ کے صفحے پر K لائن مدت مقرر کریں ، یعنی ڈیفالٹ K لائن مدت کو کال کرتے وقت استعمال کیا جاتا ہے۔exchange.GetRecords()پیرامیٹرز کو منتقل کرنے کے بغیر کام.

سیکنڈ میں K لائن کا دورانیہ، سیکنڈ میں انٹیجر ویلیو نمبر

تبادلہ.GetPeriod()

function main() {
    // For example, the K-line period set on the website page of the FMZ Quant Trading platform during backtesting and live trading is 1 hour.
    var period = exchange.GetPeriod()
    Log("K-line period:", period / (60 * 60), "hours")
}
def main():
    period = exchange.GetPeriod()
    Log("K-line period:", period / (60 * 60), "hours")
void main() {
    auto period = exchange.GetPeriod();
    Log("K-line period:", period / (60 * 60.0), "hours");
}

{@fun/Market/exchange.GetRecords تبادلہ.GetRecords}

exchange.SetMaxBarLen

K لائن کی زیادہ سے زیادہ لمبائی مقرر کریں.

تبادلہ.SetMaxBarLen ((n)

پیرامیٹرnزیادہ سے زیادہ K لائن کی لمبائی کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے. ن سچ نمبر

function main() {
    exchange.SetMaxBarLen(50)
    var records = exchange.GetRecords()
    Log(records.length, records)
}
def main():
    exchange.SetMaxBarLen(50)
    r = exchange.GetRecords()
    Log(len(r), r)
void main() {
    exchange.SetMaxBarLen(50);
    auto r = exchange.GetRecords();
    Log(r.size(), r[0]);
}

کےexchange.SetMaxBarLen()فنکشن cryptocurrency حکمت عملی رن ٹائم کے لئے دو پہلوؤں کو متاثر کرتا ہے:

  • پہلی کال پر حاصل کی جانے والی K لائن بار (بار) کی تعداد کو متاثر کرتا ہے۔
  • K لائن سلاخوں کی زیادہ سے زیادہ تعداد (بارز) کو متاثر کرتا ہے۔

{@fun/Market/exchange.GetRecords تبادلہ.GetRecords}

exchange.GetRawJSON

اصل مواد کو آخری تک واپس کریںrestموجودہ تبادلہ آبجیکٹ کے لئے درخواست ({@var/EXCHANGE تبادلہ}، {@var/EXCHANGE/exchanges exchanges}).

جواب کے اعداد و شمارrestدرخواست. سٹرنگ

تبادلہ.GetRawJSON()

function main(){
    exchange.GetAccount(); 
    var obj = JSON.parse(exchange.GetRawJSON());
    Log(obj);
}
import json
def main():
    exchange.GetAccount()
    obj = json.loads(exchange.GetRawJSON())
    Log(obj)
void main() {
    auto obj = exchange.GetAccount();
    // C++ does not support the GetRawJSON function
    Log(obj);
}

کےexchange.GetRawJSON()فنکشن صرف حقیقی ٹریڈنگ کے لئے حمایت کی جاتی ہے.C++ language.

{@var/EXCHANGE تبادلہ}

exchange.GetRate

تبادلہ اعتراض کے لئے فی الحال مقرر کرنسی کی شرح حاصل کریں.

تبادلے کے اعتراض کی شرح تبادلہ کی موجودہ قیمت۔ نمبر

تبادلہ.GetRate()

function main(){
    Log(exchange.GetTicker())
    // Set up exchange rate conversion
    exchange.SetRate(7)
    Log(exchange.GetTicker())
    Log("Current exchange rate:", exchange.GetRate())
}
def main():
    Log(exchange.GetTicker())
    exchange.SetRate(7)
    Log(exchange.GetTicker())
    Log("Current exchange rate:", exchange.GetRate())
void main() {
    Log(exchange.GetTicker());
    exchange.SetRate(7);
    Log(exchange.GetTicker());
    Log("Current exchange rate:", exchange.GetRate());
}

اگرexchange.SetRate()تبادلہ کی شرح مقرر کرنے کے لئے بلایا نہیں کیا گیا ہے،exchange.GetRate()فنکشن 1 کی ڈیفالٹ شرح کی قدر لوٹاتا ہے۔ یعنی ، فی الحال دکھائی جانے والی کرنسی (quoteCurrency) سے متعلق ڈیٹا کو تبدیل نہیں کیا گیا ہے۔ اگر زر مبادلہ کی شرح کی قیمت کا استعمال کرتے ہوئے مقرر کیا گیا ہےexchange.SetRate()مثال کے طور پر،exchange.SetRate(7)اس کے بعد تمام قیمت کی معلومات، جیسے قیمتوں کا تعین، گہرائیوں، اور آرڈر کی قیمتوں کے ذریعے حاصلexchangeایکسچینج آبجیکٹ کو مقرر کردہ زر مبادلہ کی شرح سے ضرب کرکے تبدیل کیا جائے گا7. اگرexchangeکال کرنے کے بعد USD کے ساتھ تبادلہ کے برابر ہےexchange.SetRate(7)، براہ راست مارکیٹ میں تمام قیمتوں کو ضرب کر کے CNY کے قریب قیمت میں تبدیل کیا جائے گا7اس وقت، زر مبادلہ کی شرح کی قیمت کا استعمال کرتے ہوئے حاصل کیا جاتا ہےexchange.GetRate()ہے7.

{@fun/Trade/exchange.SetRate تبادلہ.SetRate}

exchange.SetData

کےexchange.SetData()تقریب کی حکمت عملی چل رہا ہے جب لوڈ ڈیٹا مقرر کرنے کے لئے استعمال کیا جاتا ہے.

پیرامیٹر کے بعد تار کی لمبائیvalueJSON کوڈنگ. نمبر

exchange.SetData ((کلید، قدر)

ڈیٹا جمع کرنے کا نام۔ چابی سچ سٹرنگ ڈیٹا کو لوڈ کیا جائے گاexchange.SetData()فنکشن ایک صف کا ڈیٹا ڈھانچہ ہے. ڈیٹا ڈھانچہ کی طرف سے درخواست کی ڈیٹا کی شکل کے طور پر ایک ہی ہےexchange.GetData()بیرونی اعداد و شمار کی درخواست کرتے وقت فنکشن، یعنی:"schema": ["time", "data"]. قیمت سچ صف

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    var data = [
        [1579536000000, "abc"],
        [1579622400000, 123],
        [1579708800000, {"price": 123}],
        [1579795200000, ["abc", 123, {"price": 123}]]
    ]
    exchange.SetData("test", data)
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000)
    }
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''              

def main():
    data = [
        [1579536000000, "abc"],
        [1579622400000, 123],
        [1579708800000, {"price": 123}],
        [1579795200000, ["abc", 123, {"price": 123}]]
    ]
    exchange.SetData("test", data)
    while True:
        Log(exchange.GetData("test"))
        Sleep(1000)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/              

void main() {
    json data = R"([
        [1579536000000, "abc"],
        [1579622400000, 123],
        [1579708800000, {"price": 123}],
        [1579795200000, ["abc", 123, {"price": 123}]]
    ])"_json;
    
    exchange.SetData("test", data);
    while(true) {
        Log(exchange.GetData("test"));
        Sleep(1000);
    }
}

یہ پیرامیٹر کے لئے ڈیٹا کی ضرورت ہوتی ہےvalueایک ہی شکل میں ہونا چاہئےdataمندرجہ ذیل مثال میں متغیر. آپ دیکھ سکتے ہیں کہ ٹائم اسٹیمپ1579622400000وقت سے مطابقت رکھتا ہے2020-01-22 00:00:00، اور اس وقت کے بعد حکمت عملی پروگرام چلایا جاتا ہے جب، کال کریںexchange.GetData()اگلے ڈیٹا ٹائم اسٹیمپ سے پہلے اعداد و شمار حاصل کرنے کے لئے تقریب1579708800000، یعنی وقت2020-01-23 00:00:00آپ کو کیا ملتا ہے[1579622400000, 123]اس ڈیٹا کا مواد ، جیسا کہ پروگرام چلتا رہتا ہے ، وقت تبدیل ہوتا ہے ، اور اسی طرح اعداد و شمار کی شے کو شے کے ذریعہ حاصل کرنے کے لئے۔ مندرجہ ذیل مثال میں ، رن ٹائم (بیکٹ ٹیسٹنگ یا لائیو ٹریڈنگ) میں ، موجودہ لمحہ ٹائم اسٹیمپ تک پہنچ جاتا ہے یا اس سے تجاوز کرتا ہے۔1579795200000،exchange.GetData()فنکشن بلایا جاتا ہے اور واپسی کی قیمت ہے:{"Time":1579795200000,"Data":["abc", 123,{"price":123}]}. "Time":1579795200000کے مطابق ہے1579795200000ڈیٹا میں[1579795200000, ["abc", 123, {"price": 123}]]. "Data":["abc", 123, {"price": 123}]اعداد و شمار سے مطابقت رکھتا ہے["abc", 123, {"price": 123}]]میں[1579795200000, ["abc", 123, {"price": 123}]].

لوڈ کردہ اعداد و شمار کسی بھی معاشی اشارے ، صنعت کے اعداد و شمار ، متعلقہ اشارے وغیرہ ہوسکتے ہیں ، جو تمام مقداری معلومات کے حکمت عملی مقداری تشخیص کے لئے استعمال ہوتے ہیں۔

{@fun/Market/exchange.GetData تبادلہ.GetData}

exchange.GetData

کےexchange.GetData()فنکشن کی طرف سے لوڈ ڈیٹا حاصل کرنے کے لئے استعمال کیا جاتا ہےexchange.SetData()فنکشن یا بیرونی لنک کی طرف سے فراہم کی.

ڈیٹا کلیکشن میں ریکارڈ۔ چیز

تبادلہ.GetData ((کلید) تبادلہ.GetData ((کلید، ٹائم آؤٹ)

ڈیٹا جمع کرنے کا نام۔ چابی سچ سٹرنگ ملی سیکنڈ میں کیش ٹائم آؤٹ سیٹ کرنے کے لئے استعمال کیا جاتا ہے۔ براہ راست تجارت کے لئے ایک منٹ کیش ٹائم آؤٹ پر ڈیفالٹس۔ ٹائم آؤٹ غلط نمبر

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
    }
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''  
def main():
    exchange.SetData("test", [[1579536000000, _D(1579536000000/1000)], [1579622400000, _D(1579622400000/1000)], [1579708800000, _D(1579708800000/1000)]])
    while True:
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/    
void main() {
    json arr = R"([[1579536000000, ""], [1579622400000, ""], [1579708800000, ""]])"_json;
    arr[0][1] = _D(1579536000000);
    arr[1][1] = _D(1579622400000);
    arr[2][1] = _D(1579708800000);
    exchange.SetData("test", arr);
    while(true) {
        Log(exchange.GetData("test"));
        Sleep(1000 * 60 * 60 * 24);
    }
}

براہ راست اعداد و شمار لکھنے کے لئے کال.

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    while(true) {
        Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
        Sleep(1000)
    }
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''              

def main():
    while True:
        Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
        Sleep(1000)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/              

void main() {
    while(true) {
        Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
        Sleep(1000);
    }
}

یہ بیرونی روابط کے ذریعے ڈیٹا کی درخواست کرنے کے لئے حمایت کرتا ہے، درخواست کردہ ڈیٹا کی شکل:

{
    "schema":["time","data"],
    "data":[
        [1579536000000, "abc"],
        [1579622400000, 123],
        [1579708800000, {"price": 123}],
        [1579795200000, ["abc", 123, {"price": 123}]]
    ]
}

کہاںschemaلوڈ کردہ ڈیٹا کے جسم میں ہر ریکارڈ کے لئے ڈیٹا فارمیٹ ہے، جو مقرر کیا جاتا ہے["time", "data"]میں اندراج کی طرف سے اندراج کے اعداد و شمار کی شکل کے مطابقdataصفت. میں ذخیرہ کیا جاتا ہےdataخاصیت ڈیٹا کا جسم ہے ، ہر اندراج میں ملی سیکنڈ کی سطح کا ٹائم اسٹیمپ اور ڈیٹا کا مواد ہوتا ہے (جو کوئی بھی JSON کوڈ قابل ڈیٹا ہوسکتا ہے) ۔ ٹیسٹنگ کے لئے سروس پروگرام، گو میں لکھا:

package main
import (
    "fmt"
    "net/http"
    "encoding/json"
)                

func Handle (w http.ResponseWriter, r *http.Request) {
    defer func() {
        fmt.Println("req:", *r)
        ret := map[string]interface{}{
            "schema": []string{"time","data"},
            "data": []interface{}{
                []interface{}{1579536000000, "abc"},
                []interface{}{1579622400000, 123},
                []interface{}{1579708800000, map[string]interface{}{"price":123}},
                []interface{}{1579795200000, []interface{}{"abc", 123, map[string]interface{}{"price":123}}},
            },
        }
        b, _ := json.Marshal(ret)
        w.Write(b)
    }()
}                

func main () {
    fmt.Println("listen http://localhost:9090")
    http.HandleFunc("/data", Handle)
    http.ListenAndServe(":9090", nil)
}

درخواست موصول ہونے پر پروگرام کے جواب کے اعداد و شمار:

{
    "schema":["time","data"],
    "data":[
        [1579536000000, "abc"],
        [1579622400000, 123],
        [1579708800000, {"price": 123}],
        [1579795200000, ["abc", 123, {"price": 123}]]
    ]
}

ٹیسٹ کی حکمت عملی کا کوڈ:

function main() {
    Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
    Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
}
def main():
    Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
    Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
void main() {
    Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
    Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"));
}

ایک بیرونی لنک کے اعداد و شمار حاصل کرنے کے لئے کال کا طریقہ.

function main() {
    Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"))   // The xxx part of the link is the code of the query data, here xxx is an example.
}
def main():
    Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"))
void main() {
    Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"));
}

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

{
    "data": [],
    "schema": ["time", "data"]
}

data فیلڈ مطلوبہ ڈیٹا مواد ہے، اور data فیلڈ میں ڈیٹا schema میں اتفاق کیا جاتا ہے کے طور پر ایک ہی ہونا ضروری ہے.exchange.GetData()فنکشن بلایا جاتا ہے، ایک JSON اعتراض واپس کیا جاتا ہے، مثال کے طور پر:{"Time":1579795200000, "Data":"..."}.

بیک ٹیسٹنگ کے لئے ایک بار میں ڈیٹا حاصل کریں اور براہ راست تجارت کے لئے ایک منٹ کے ڈیٹا کو کیش کریں۔ بیک ٹیسٹنگ سسٹم میں ، جب رسائی انٹرفیس کا استعمال کرتے ہوئے ڈیٹا کی درخواست کی جائے تو ، بیک ٹیسٹنگ سسٹم خود بخود شامل کرتا ہےfrom(سیکنڈ میں وقت کا نشان)to(سیکنڈ میں ٹائم اسٹیمپ) کی درخواست، پیرامیٹرز جیسےperiod(بنیادی K لائن کی مدت، ملی سیکنڈ میں ٹائم اسٹیمپ) کا استعمال اس وقت کے فریم کو طے کرنے کے لئے کیا جاتا ہے جس پر ڈیٹا حاصل کیا جانا ہے۔

{@ تفریح/مارکیٹ/تبادلہ.سیٹ ڈیٹا تبادلہ.سیٹ ڈیٹا}

exchange.GetMarkets

کےexchange.GetMarkets()فنکشن تبادلہ مارکیٹ کی معلومات حاصل کرنے کے لئے استعمال کیا جاتا ہے.

{@struct/Market Market} ساخت پر مشتمل لغت. چیز

تبادلہ.GetMarkets()

function main() {
    var markets = exchange.GetMarkets()
    var currency = exchange.GetCurrency()

    // Get the current contract code can also use exchange.GetContractType() function
    var ct = "swap"

    var key = currency + "." + ct
    Log(key, ":", markets[key])
}
def main():
    markets = exchange.GetMarkets()
    currency = exchange.GetCurrency()
    ct = "swap"

    key = currency + "." + ct
    Log(key, ":", markets[key])
void main() {
    auto markets = exchange.GetMarkets();
    auto currency = exchange.GetCurrency();

    auto ct = "swap";
    auto key = currency + "." + ct;
    Log(key, ":", markets[key]);
}

فیوچر ایکسچینج آبجیکٹ پر کال کا مثال:

/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

function main() {
    var arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]

    var tbl1 = {
        type: "table",
        title: "markets1",
        cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        rows: []
    }

    var markets1 = exchange.GetMarkets()
    for (var key in markets1) {
        var market = markets1[key]
        tbl1.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
    }

    for (var symbol of arrSymbol) {
        exchange.GetTicker(symbol)
    }

    var tbl2 = {
        type: "table",
        title: "markets2",
        cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        rows: []
    }

    var markets2 = exchange.GetMarkets()
    for (var key in markets2) {
        var market = markets2[key]
        tbl2.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
    }

    LogStatus("`" + JSON.stringify([tbl1, tbl2]) + "`")
}
'''backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''

import json

def main():
    arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]

    tbl1 = {
        "type": "table",
        "title": "markets1",
        "cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        "rows": []
    }

    markets1 = exchange.GetMarkets()
    for key in markets1:
        market = markets1[key]
        tbl1["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])

    for symbol in arrSymbol:
        exchange.GetTicker(symbol)

    tbl2 = {
        "type": "table",
        "title": "markets2",
        "cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        "rows": []
    }

    markets2 = exchange.GetMarkets()
    for key in markets2:
        market = markets2[key]
        tbl2["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])

    LogStatus("`" + json.dumps([tbl1, tbl2]) + "`")
/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

void main() {
    auto arrSymbol = {"SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};

    json tbl1 = R"({
        "type": "table",
        "title": "markets1",
        "cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        "rows": []
    })"_json;

    auto markets1 = exchange.GetMarkets();
    for (auto& [key, market] : markets1.items()) {
        json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
        tbl1["rows"].push_back(arrJson);
    }

    for (const auto& symbol : arrSymbol) {
        exchange.GetTicker(symbol);
    }

    json tbl2 = R"({
        "type": "table",
        "title": "markets2",
        "cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
        "rows": []
    })"_json;

    auto markets2 = exchange.GetMarkets();
    for (auto& [key, market] : markets2.items()) {
        json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
        tbl2["rows"].push_back(arrJson);
    }

    json tbls = R"([])"_json;
    tbls.push_back(tbl1);
    tbls.push_back(tbl2);
    LogStatus("`" + tbls.dump() + "`");
}

مستقبل کے تبادلے اعتراض کو کال کرنے کے لئے استعمال کریںexchange.GetMarkets()بیک ٹسٹنگ سسٹم میں فنکشن۔ کسی بھی مارکیٹ فنکشن کو کال کرنے سے پہلے ، گیٹ مارکیٹس صرف موجودہ ڈیفالٹ ٹریڈنگ جوڑی کے مارکیٹ ڈیٹا کو واپس کرتا ہے۔ مارکیٹ فنکشن کو کال کرنے کے بعد ، یہ تمام مطلوبہ اقسام کے مارکیٹ ڈیٹا کو واپس کرتا ہے۔ آپ مندرجہ ذیل ٹیسٹ مثال کا حوالہ دے سکتے ہیں:

کےexchange.GetMarkets()فنکشن ٹریڈنگ کی قسم کا نام رکھنے والی کلید کے ساتھ ایک لغت واپس کرتا ہے ، اور تجارتی جوڑی کے طور پر فارمیٹ کردہ اسپاٹ فکسز کے لئے ، مثال کے طور پر:

{
    "BTC_USDT" : {...},  // The key value is the Market structure
    "LTC_USDT" : {...},  
    ...
}

مستقبل کے معاہدے کے تبادلے کے لئے، کیونکہ ایک ہی قسم کے لئے متعدد معاہدے ہوسکتے ہیں، مثال کے طور پرBTC_USDTٹریڈنگ کے جوڑوں، ہمیشہ کے لئے معاہدوں، سہ ماہی معاہدوں، اور اسی طرح کے ہیں.exchange.GetMarkets()فنکشن معاہدے کے کوڈ کے ساتھ مل کر جوڑی کے کلیدی نام کے ساتھ ایک لغت واپس کرتا ہے، مثال کے طور پر:

{
    "BTC_USDT.swap" : {...},     // The key value is the Market structure
    "BTC_USDT.quarter" : {...}, 
    "LTC_USDT.swap" : {...},
    ...
}
  • کےexchange.GetMarkets()فنکشن لائیو ٹریڈنگ، بیک ٹیسٹنگ سسٹم کی حمایت کرتا ہے.
  • کےexchange.GetMarkets()فنکشن صرف ان اقسام کے لئے مارکیٹ کی معلومات واپس کرتا ہے جو ایکسچینج پر آن لائن تجارت کی جاتی ہیں.
  • کےexchange.GetMarkets()فنکشن اختیارات کے معاہدوں کی حمایت نہیں کرتا.

تبادلے جو حمایت نہیں کرتےexchange.GetMarkets()فنکشن:

فنکشن کا نام غیر تعاون یافتہ اسپاٹ ایکسچینجز غیر معاون فیوچر ایکسچینج
گیٹ مارکیٹس Coincheck / Bithumb / BitFlyer

{@struct/مارکیٹ مارکیٹ}

exchange.GetTickers

کےexchange.GetTickers()تقریب تبادلہ مجموعی ٹکر ڈیٹا حاصل کرنے کے لئے استعمال کیا جاتا ہے ({@struct/Ticker Ticker} ساخت کی صف).exchangeتمام ٹریڈنگ جوڑوں کے لئے ٹکر ڈیٹا واپس کرتا ہے جب یہ ایک اسپاٹ ایکسچینج آبجیکٹ ہےexchangeتمام معاہدوں کے لئے ٹکر ڈیٹا واپس کرتا ہے جب یہ فیوچر ایکسچینج آبجیکٹ ہے۔

کےexchange.GetTickers()فنکشن {@struct/Ticker Ticker} ڈھانچے کی ایک صف واپس کرتا ہے جب یہ ڈیٹا کی درخواست کرنے میں کامیاب ہوتا ہے ، اور جب یہ ناکام ہوجاتا ہے تو صفر ہوتا ہے۔ {@struct/Ticker Ticker} صفیں، خالی اقدار

تبادلہ.GetTickers()

function main() {
    var tickers = exchange.GetTickers()
    if (tickers && tickers.length > 0) {
        Log("Number of tradable items on the exchange:", tickers.length)
    }
}
def main():
    tickers = exchange.GetTickers()
    if tickers and len(tickers) > 0:
        Log("Number of tradable items on the exchange:", len(tickers))
void main() {
    auto tickers = exchange.GetTickers();
    if (tickers.Valid && tickers.size() > 0) {
        Log("Number of tradable items on the exchange:", tickers.size());
    }
}

کال کریںexchange.GetTickers()مجموعی مارکیٹ کے اعداد و شمار حاصل کرنے کے لئے کام.

/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
    
    // Before requesting other trading pair market data, call Get Tickers
    var tickers1 = exchange.GetTickers()
    var tbl1 = {type: "table", title: "tickers1", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var ticker of tickers1) {
        tbl1.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }
    
    // Request market data for other trading pairs
    for (var symbol of arrSymbol) {
        exchange.GetTicker(symbol)
    }

    // Call GetTickers again
    var tickers2 = exchange.GetTickers()
    var tbl2 = {type: "table", title: "tickers2", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var ticker of tickers2) {
        tbl2.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify([tbl1, tbl2]) +  "`")
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''

import json

def main():
    arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
        
    tickers1 = exchange.GetTickers()
    tbl1 = {"type": "table", "title": "tickers1", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
    for ticker in tickers1:
        tbl1["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
    
    for symbol in arrSymbol:
        exchange.GetTicker(symbol)
    
    tickers2 = exchange.GetTickers()
    tbl2 = {"type": "table", "title": "tickers2", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
    for ticker in tickers2:
        tbl2["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
    
    LogStatus("`" + json.dumps([tbl1, tbl2]) +  "`")
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

json tickerToJson(const Ticker& ticker) {
    json arrJson;

    arrJson.push_back(ticker.Symbol);
    arrJson.push_back(ticker.High);
    arrJson.push_back(ticker.Open);
    arrJson.push_back(ticker.Low);
    arrJson.push_back(ticker.Last);
    arrJson.push_back(ticker.Buy);
    arrJson.push_back(ticker.Sell);
    arrJson.push_back(ticker.Time);
    arrJson.push_back(ticker.Volume);

    return arrJson;
}

void main() {
    std::string arrSymbol[] = {"ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"};
    
    auto tickers1 = exchange.GetTickers();
    json tbl1 = R"({
        "type": "table", 
        "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
        "rows": []
    })"_json;
    tbl1["title"] = "tickers1";
    
    for (const auto& ticker : tickers1) {
        json arrJson = tickerToJson(ticker);
        tbl1["rows"].push_back(arrJson);
    }
    
    for (const std::string& symbol : arrSymbol) {
        exchange.GetTicker(symbol);
    }
    
    auto tickers2 = exchange.GetTickers();
    json tbl2 = R"({
        "type": "table", 
        "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
        "rows": []
    })"_json;
    tbl2["title"] = "tickers2";
    
    for (const auto& ticker : tickers2) {
        json arrJson = tickerToJson(ticker);
        tbl2["rows"].push_back(arrJson);
    }
    
    json tbls = R"([])"_json;
    tbls.push_back(tbl1);
    tbls.push_back(tbl2);
    LogStatus("`" + tbls.dump() + "`");
}

اسپاٹ تبادلہ اعتراض کا استعمال کریں اور کال کریںexchange.GetTickers()بیک ٹسٹ سسٹم میں فنکشن۔ کسی بھی مارکیٹ فنکشن کو کال کرنے سے پہلے ، گیٹ ٹکرز صرف موجودہ ڈیفالٹ ٹریڈنگ جوڑی کے ٹکر ڈیٹا کو لوٹاتا ہے۔ مارکیٹ فنکشن کو کال کرنے کے بعد ، یہ تمام مطلوبہ اقسام کے ٹکر ڈیٹا کو لوٹاتا ہے۔ آپ مندرجہ ذیل ٹیسٹ مثال کا حوالہ دے سکتے ہیں:

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

تبادلے جو حمایت نہیں کرتےexchange.GetTickers()فنکشن:

فنکشن کا نام غیر تعاون یافتہ اسپاٹ ایکسچینجز غیر معاون فیوچر ایکسچینج
GetTickers Zaif / WOO / Gemini / Coincheck / BitFlyer / Bibox فیوچر_WOO / فیوچر_ڈی وائی ڈی ایکس / فیوچر_ڈریبیٹ / فیوچر_بی باکس / فیوچر_ایوو

{@struct/TickerTicker}، {@fun/Market/exchange.GetTicker تبادلہ.GetTicker}

لاگ تجارت