..exchange.Buy()
खरीद आदेश देने के लिए उपयोग किया जाता है।Buy()
फ़ंक्शन एक्सचेंज ऑब्जेक्ट {@var/EXCHANGE exchange} का सदस्य फ़ंक्शन है।Buy()
विनिमय वस्तु से बंधे विनिमय खाते पर कार्य करता हैexchange
. सदस्य कार्यों का उद्देश्य (प्रणाली)exchange
ऑब्जेक्ट केवल संबंधित हैexchange
, और यह प्रलेखन के बाद दोहराया नहीं जाएगा।
एक सफल आदेश आदेश आईडी देता है, एक असफल आदेश शून्य मान देता है.
विशेषताId
एफएमजेड प्लेटफॉर्म के आदेश {@struct/Order Order} संरचना में एक्सचेंज उत्पाद कोड और एक्सचेंज मूल आदेश आईडी शामिल है, जिन्हें अंग्रेजी अल्पविराम से अलग किया गया है। उदाहरण के लिए, विशेषताId
स्पॉट ट्रेडिंग जोड़ी का प्रारूपETH_USDT
ओकेएक्स एक्सचेंज का क्रम हैःETH-USDT,1547130415509278720
.
जब फोन करते हैंexchange.Buy()
ऑर्डर देने के लिए फ़ंक्शन, रिटर्न वैल्यू ऑर्डरId
के अनुरूप हैId
आदेश {@struct/Order Order} संरचना की विशेषता।
स्ट्रिंग, शून्य मान
विनिमय.खरीदें ((मूल्य, राशि) विनिमय.खरीदें ((मूल्य, राशि,... args)
..price
पैरामीटर का उपयोग आदेश मूल्य निर्धारित करने के लिए किया जाता है।
मूल्य
सच
संख्या
दamount
पैरामीटर का उपयोग आदेश राशि को सेट करने के लिए किया जाता है।
राशि
सच
संख्या
विस्तारित मापदंड जो इस ऑर्डर लॉग के लिए सहायक जानकारी आउटपुट कर सकते हैं,arg
पैरामीटर एक से अधिक पारित किया जा सकता है।
आर्ग
झूठी
string, number, bool, object, array, null और सिस्टम द्वारा समर्थित कोई अन्य प्रकार
function main() {
var id = exchange.Buy(100, 1);
Log("id:", id);
}
def main():
id = exchange.Buy(100, 1)
Log("id:", id)
void main() {
auto id = exchange.Buy(100, 1);
Log("id:", id);
}
द्वारा लौटाया गया क्रमांकexchange.Buy()
आदेश की जानकारी पूछने और आदेश को रद्द करने के लिए इस्तेमाल किया जा सकता है।
// The following is an error call
function main() {
exchange.SetContractType("quarter")
// Set the shorting direction
exchange.SetDirection("sell")
// If you place a buy order, an error will be reported, and shorting can only be sold
var id = exchange.Buy(50, 1)
// Set the long direction
exchange.SetDirection("buy")
// If you place a sell order, it will report an error, go long, only buy
var id2 = exchange.Sell(60, 1)
// Set direction to close long positions
exchange.SetDirection("closebuy")
// If you place a buy order, it will report an error, close long, only sell
var id3 = exchange.Buy(-1, 1)
// Set direction to close short positions
exchange.SetDirection("closesell")
// If you place a sell order, it will report an error, close short, only buy
var id4 = exchange.Sell(-1, 1)
}
# The following is an error call
def main():
exchange.SetContractType("quarter")
exchange.SetDirection("sell")
id = exchange.Buy(50, 1)
exchange.SetDirection("buy")
id2 = exchange.Sell(60, 1)
exchange.SetDirection("closebuy")
id3 = exchange.Buy(-1, 1)
exchange.SetDirection("closesell")
id4 = exchange.Sell(-1, 1)
// The following is an error call
void main() {
exchange.SetContractType("quarter");
exchange.SetDirection("sell");
auto id = exchange.Buy(50, 1);
exchange.SetDirection("buy");
auto id2 = exchange.Sell(60, 1);
exchange.SetDirection("closebuy");
auto id3 = exchange.Buy(-1, 1);
exchange.SetDirection("closesell");
auto id4 = exchange.Sell(-1, 1);
}
क्रिप्टोक्यूरेंसी वायदा अनुबंध के लिए ऑर्डर देते समय, यह सुनिश्चित करने के लिए सावधानी बरती जानी चाहिए कि ट्रेड दिशा सही ढंग से सेट हो, क्योंकि ट्रेड दिशा और ट्रेड फ़ंक्शन के बीच असंगतता के परिणामस्वरूप त्रुटि होगीः
direction is sell, invalid order type Buy
direction is buy, invalid order type Sell
direction is closebuy, invalid order type Buy
direction is closesell, invalid order type Sell
// For example, the trading pair: ETH_BTC, place a buy order at the market price
function main() {
// Place a buy order at the market price and buy ETH coins with a value of 0.1 BTC (denominated currency)
exchange.Buy(-1, 0.1)
}
def main():
exchange.Buy(-1, 0.1)
void main() {
exchange.Buy(-1, 0.1);
}
स्पॉट मार्केट ऑर्डर।
फ्यूचर्स कॉन्ट्रैक्ट के लिए ऑर्डर देते समय, आपको इस बात पर ध्यान देना चाहिए कि क्या ट्रेड दिशा सही ढंग से सेट की गई है, क्योंकि यदि ट्रेड दिशा और ट्रेड फ़ंक्शन मेल नहीं खाते हैं तो त्रुटि की सूचना दी जाएगी। क्रिप्टोक्यूरेंसी फ्यूचर्स कॉन्ट्रैक्ट के लिए ऑर्डर का आकार अनुबंधों की संख्या है यदि निर्दिष्ट नहीं है।
पैरामीटरprice
पर सेट है-1
बाजार के आदेशों को रखने के लिए, जिसके लिए एक्सचेंज के ऑर्डर प्लेसमेंट इंटरफ़ेस को बाजार के आदेशों का समर्थन करने की आवश्यकता होती है। क्रिप्टोक्यूरेंसी स्पॉट अनुबंधों के लिए बाजार के आदेशों को रखने पर, पैरामीटरamount
आदेश की मुद्रा में पैसे की राशि है। जब क्रिप्टोक्यूरेंसी वायदा अनुबंधों के लिए बाजार के आदेश रखने, राशि पैरामीटरamount
अनुबंधों की संख्या है. कुछ क्रिप्टोक्यूरेंसी एक्सचेंजों हैं जो लाइव ट्रेडिंग के दौरान बाजार ऑर्डर इंटरफ़ेस का समर्थन नहीं करते हैं. कुछ स्पॉट एक्सचेंजों पर बाजार खरीद ऑर्डर के लिए ऑर्डर मात्रा ट्रेडिंग सिक्कों की संख्या है. कृपया देखेंआदान-प्रदान के लिए विशेष निर्देशId
केexchange.Buy()
कार्य आदेश के वापसी मूल्य से अलग हो सकता हैId
वर्तमान दस्तावेज में वर्णित है।
{@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Futures/exchange.Sell exchange.Sell}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}
..exchange.Sell()
विक्रय आदेश देने के लिए उपयोग किया जाता है।
एक सफल आदेश आदेश आईडी देता है, एक असफल आदेश शून्य मान देता है।Id
एफएमजेड प्लेटफॉर्म के आदेश {@struct/Order Order} संरचना में एक्सचेंज उत्पाद कोड और एक्सचेंज मूल आदेश आईडी शामिल है, जिन्हें अंग्रेजी अल्पविराम से अलग किया गया है। उदाहरण के लिए, विशेषताId
स्पॉट ट्रेडिंग जोड़ी का प्रारूपETH_USDT
ओकेएक्स एक्सचेंज का क्रम हैःETH-USDT,1547130415509278720
.exchange.Sell()
ऑर्डर देने के लिए फ़ंक्शन, रिटर्न वैल्यू ऑर्डरId
के अनुरूप हैId
आदेश {@struct/Order Order} संरचना की विशेषता।
स्ट्रिंग, शून्य मान
विनिमय.बिक्री (मूल्य, राशि) विनिमय.बिक्री ((मूल्य, राशि,... args)
..price
पैरामीटर का उपयोग आदेश मूल्य निर्धारित करने के लिए किया जाता है।
मूल्य
सच
संख्या
दamount
पैरामीटर का उपयोग आदेश राशि को सेट करने के लिए किया जाता है।
राशि
सच
संख्या
विस्तारित मापदंड जो इस ऑर्डर लॉग के लिए सहायक जानकारी आउटपुट कर सकते हैं,arg
पैरामीटर एक से अधिक पारित किया जा सकता है।
आर्ग
झूठी
string, number, bool, object, array, null और सिस्टम द्वारा समर्थित कोई अन्य प्रकार
function main(){
var id = exchange.Sell(100, 1)
Log("id:", id)
}
def main():
id = exchange.Sell(100, 1)
Log("id:", id)
void main() {
auto id = exchange.Sell(100, 1);
Log("id:", id);
}
द्वारा लौटाया गया क्रमांकexchange.Sell()
आदेश सूचनाओं को क्वेरी करने और आदेशों को रद्द करने के लिए इस्तेमाल किया जा सकता है।
// The following is an error call
function main() {
exchange.SetContractType("quarter")
// Set the shorting direction
exchange.SetDirection("sell")
// If you place a buy order, an error will be reported, and shorting can only be sold
var id = exchange.Buy(50, 1)
// Set the long direction
exchange.SetDirection("buy")
// If you place a sell order, it will report an error, go long, only buy
var id2 = exchange.Sell(60, 1)
// Set direction to close long positions
exchange.SetDirection("closebuy")
// If you place a buy order, it will report an error, close long, only sell
var id3 = exchange.Buy(-1, 1)
// Set direction to close short positions
exchange.SetDirection("closesell")
// If you place a sell order, it will report an error, close short, only buy
var id4 = exchange.Sell(-1, 1)
}
# The following is an error call
def main():
exchange.SetContractType("quarter")
exchange.SetDirection("sell")
id = exchange.Buy(50, 1)
exchange.SetDirection("buy")
id2 = exchange.Sell(60, 1)
exchange.SetDirection("closebuy")
id3 = exchange.Buy(-1, 1)
exchange.SetDirection("closesell")
id4 = exchange.Sell(-1, 1)
// The following is an error call
void main() {
exchange.SetContractType("quarter");
exchange.SetDirection("sell");
auto id = exchange.Buy(50, 1);
exchange.SetDirection("buy");
auto id2 = exchange.Sell(60, 1);
exchange.SetDirection("closebuy");
auto id3 = exchange.Buy(-1, 1);
exchange.SetDirection("closesell");
auto id4 = exchange.Sell(-1, 1);
}
क्रिप्टोक्यूरेंसी वायदा अनुबंध के लिए ऑर्डर देते समय, यह सुनिश्चित करने के लिए सावधानी बरती जानी चाहिए कि ट्रेड दिशा सही ढंग से सेट हो, क्योंकि ट्रेड दिशा और ट्रेड फ़ंक्शन के बीच असंगतता के परिणामस्वरूप त्रुटि होगीः
direction is sell, invalid order type Buy
direction is buy, invalid order type Sell
direction is closebuy, invalid order type Buy
direction is closesell, invalid order type Sell
// For example, the trading pair: ETH_BTC, place a sell order at the market price
function main() {
// Note: place a market order to sell, sell 0.2 ETH
exchange.Sell(-1, 0.2)
}
def main():
exchange.Sell(-1, 0.2)
void main() {
exchange.Sell(-1, 0.2);
}
स्पॉट मार्केट ऑर्डर।
फ्यूचर्स कॉन्ट्रैक्ट के लिए ऑर्डर देते समय, आपको इस बात पर ध्यान देना चाहिए कि क्या ट्रेड दिशा सही ढंग से सेट की गई है, क्योंकि यदि ट्रेड दिशा और ट्रेड फ़ंक्शन मेल नहीं खाते हैं तो त्रुटि की सूचना दी जाएगी। क्रिप्टोक्यूरेंसी फ्यूचर्स कॉन्ट्रैक्ट के लिए ऑर्डर राशि अनुबंधों की संख्या है यदि निर्दिष्ट नहीं है।
पैरामीटरprice
पर सेट है-1
बाजार के आदेशों को रखने के लिए, जिसके लिए बाजार के आदेशों का समर्थन करने के लिए एक्सचेंज के ऑर्डर प्लेसमेंट इंटरफ़ेस की आवश्यकता होती है। क्रिप्टोक्यूरेंसी स्पॉट अनुबंधों के लिए बाजार के आदेशों को रखने के लिए, राशि पैरामीटरamount
व्यापार मुद्रा में राशि है। क्रिप्टोक्यूरेंसी वायदा अनुबंधों के लिए बाजार आदेश रखने पर, राशि पैरामीटरamount
अनुबंधों की संख्या है. कुछ क्रिप्टोक्यूरेंसी एक्सचेंज हैं जो लाइव ट्रेडिंग के दौरान मार्केट ऑर्डर इंटरफ़ेस का समर्थन नहीं करते हैं.
यदि आप डॉकर के पुराने संस्करण का उपयोग कर रहे हैं, आदेश का मूल्य वापसId
केexchange.Sell()
कार्य आदेश के वापसी मूल्य से अलग हो सकता हैId
वर्तमान दस्तावेज में वर्णित है।
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}, {@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Futures/exchange.Buy exchange.Buy}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}, {@fun/Futures/exchange.SetDirection exchange.SetDirection}, {@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Futures/Futures/exchange.
..exchange.CreateOrder()
ऑर्डर देने के लिए फ़ंक्शन का प्रयोग किया जाता है।
यदि आदेश सफलतापूर्वक रखा जाता है, तो आदेश आईडी लौटाया जाता है; यदि आदेश विफल हो जाता है, तो शून्य मान लौटाया जाता है।Id
एफएमजेड प्लेटफॉर्म के आदेश {@struct/Order Order} संरचना में एक्सचेंज उत्पाद कोड और एक्सचेंज मूल आदेश आईडी शामिल है, जिन्हें अंग्रेजी अल्पविराम से अलग किया गया है। उदाहरण के लिए, विशेषताId
स्पॉट ट्रेडिंग जोड़ी के ऑर्डर का प्रारूपETH_USDT
ओकेएक्स एक्सचेंज का मूल्य हैःETH-USDT,1547130415509278720
.exchange.CreateOrder(symbol, side, price, amount)
ऑर्डर देने के लिए फ़ंक्शन, ऑर्डर का रिटर्न मानId
के अनुरूप हैId
आदेश {@struct/Order Order} संरचना की संपत्ति।
स्ट्रिंग, शून्य मान
exchange.CreateOrder ((प्रतीक, पक्ष, मूल्य, राशि) exchange.CreateOrder ((प्रतीक, पक्ष, मूल्य, राशि,... args)
पैरामीटरsymbol
आदेश के विशिष्ट व्यापारिक जोड़े और अनुबंध कोड को निर्दिष्ट करने के लिए प्रयोग किया जाता है।exchange.CreateOrder(symbol, side, price, amount)
ऑर्डर देने की कार्यक्षमता,exchange
स्पॉट एक्सचेंज ऑब्जेक्ट है। यदि ऑर्डर की मुद्रा USDT है और ट्रेडिंग मुद्रा BTC है, तो पैरामीटरsymbol
है:"BTC_USDT"
, एफएमजेड प्लेटफॉर्म द्वारा परिभाषित ट्रेडिंग जोड़ी के प्रारूप में।exchange.CreateOrder(symbol, side, price, amount)
ऑर्डर देने की कार्यक्षमता,exchange
वायदा विनिमय वस्तु है। यदि आदेश एक BTCsymbol
है:"BTC_USDT.swap"
, और प्रारूपव्यापारिक जोड़ीऔरअनुबंध कोडFMZ प्लेटफॉर्म द्वारा परिभाषित, वर्ण द्वारा अलग exchange.CreateOrder(symbol, side, price, amount)
ऑर्डर देने की कार्यक्षमता,exchange
फ्यूचर्स एक्सचेंज ऑब्जेक्ट है। यदि ऑर्डर BTCsymbol
है:"BTC_USDT.BTC-240108-40000-C"
(उदाहरण के लिए बिनेंस विकल्प BTC-240108-40000-C लेते हुए), और प्रारूपव्यापारिक जोड़ीएफएमजेड प्लेटफॉर्म द्वारा परिभाषित और एक्सचेंज द्वारा परिभाषित विशिष्ट विकल्प अनुबंध कोड, जो वर्ण side
पैरामीटर का प्रयोग आदेश की ट्रेडिंग दिशा निर्दिष्ट करने के लिए किया जाता है।
स्पॉट एक्सचेंज ऑब्जेक्ट्स के लिए, वैकल्पिक मानside
पैरामीटर हैंःbuy
, sell
. buy
खरीदना है, औरsell
बेचने का मतलब है।
वायदा विनिमय वस्तुओं के लिए, वैकल्पिक मूल्यside
पैरामीटर हैंःbuy
, closebuy
, sell
, closesell
. buy
एक लंबी स्थिति खोलने का अर्थ है,closebuy
एक लंबी स्थिति को बंद करने का अर्थ है,sell
शॉर्ट पोजीशन खोलना, औरclosesell
मतलब शॉर्ट पोजीशन बंद करना।
पक्ष
सच
स्ट्रिंग
पैरामीटरprice
आदेश की कीमत निर्धारित करने के लिए प्रयोग किया जाता है। -1 की कीमत इंगित करती है कि आदेश एक बाजार आदेश है।
मूल्य
सच
संख्या
पैरामीटरamount
आदेश मात्रा निर्धारित करने के लिए प्रयोग किया जाता है। कृपया ध्यान दें कि जब आदेश एक बाजार खरीद आदेश है, आदेश मात्रा खरीद राशि है; कुछ स्पॉट एक्सचेंजों के बाजार खरीद आदेश के आदेश मात्रा व्यापार सिक्कों की संख्या है। विवरण के लिए, कृपया देखेंआदान-प्रदान के लिए विशेष निर्देशarg
मापदंडों को पारित किया जा सकता है।
आर्ग
झूठी
सिस्टम द्वारा समर्थित कोई भी प्रकार, जैसे स्ट्रिंग, संख्या, बूल, ऑब्जेक्ट, सरणी, शून्य मान आदि।
function main() {
var id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01) // Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
// var id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01) // Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id)
}
def main():
id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01) # Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
# id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01) # Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id)
void main() {
auto id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01); // Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
// auto id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01); // Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id);
}
स्पॉट एक्सचेंज ऑब्जेक्ट्स और फ्यूचर्स एक्सचेंज ऑब्जेक्ट्स कोexchange.CreateOrder()
आदेश देने के लिए कार्य।
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}
..exchange.CancelOrder()
ऑर्डर रद्द करने के लिए फ़ंक्शन का प्रयोग किया जाता है.
विशेषताId
एफएमजेड प्लेटफॉर्म के आदेश {@struct/Order Order} संरचना में एक्सचेंज उत्पाद कोड और एक्सचेंज मूल आदेश आईडी शामिल है, जिन्हें अंग्रेजी अल्पविराम से अलग किया गया है। उदाहरण के लिए, विशेषताId
स्पॉट ट्रेडिंग जोड़ी के ऑर्डर का प्रारूपETH_USDT
ओकेएक्स एक्सचेंज का मूल्य हैःETH-USDT,1547130415509278720
.
पैरामीटरorderId
में पारित किया जब कॉलexchange.CancelOrder()
एक आदेश रद्द करने के लिए समारोह के साथ संगत हैId
आदेश {@struct/Order Order} संरचना की संपत्ति।
..exchange.CancelOrder()
फ़ंक्शन एक सही मान देता है, उदाहरण के लिएtrue
का मतलब है कि रद्द आदेश अनुरोध सफलतापूर्वक भेजा गया था. यदि यह एक गलत मान देता है, जैसे किfalse
, का मतलब है कि रद्द आदेश अनुरोध भेजने में विफल रहा है। रिटर्न मान केवल यह निर्धारित करने के लिए भेजा अनुरोध की सफलता या विफलता का प्रतिनिधित्व करता है कि क्या एक्सचेंज आदेश रद्द करता है। आप कॉल कर सकते हैंexchange.GetOrders()
यह निर्धारित करने के लिए कि आदेश रद्द किया गया है या नहीं।
बोल
विनिमय.ऑर्डर रद्द करें (ऑर्डर आईडी) विनिमय.ऑर्डर रद्द करें (ऑर्डर आईडी,... args)
..orderId
पैरामीटर का प्रयोग रद्द किए जाने वाले आदेश को निर्दिष्ट करने के लिए किया जाता है।
आदेशित
सच
संख्या, स्ट्रिंग
विस्तारित पैरामीटर, आप इस निकासी लॉग के लिए संलग्न जानकारी आउटपुट कर सकते हैं,arg
पैरामीटर एक से अधिक पारित किया जा सकता है।
आर्ग
झूठी
string, number, bool, object, array, null और सिस्टम द्वारा समर्थित कोई अन्य प्रकार
function main(){
var id = exchange.Sell(99999, 1)
exchange.CancelOrder(id)
}
def main():
id = exchange.Sell(99999, 1)
exchange.CancelOrder(id)
void main() {
auto id = exchange.Sell(99999, 1);
exchange.CancelOrder(id);
}
आदेश रद्द करो।
function main() {
if (exchange.GetName().includes("Futures_")) {
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.")
exchange.SetContractType("swap")
exchange.SetDirection("buy")
}
var ticker = exchange.GetTicker()
exchange.Buy(ticker.Last * 0.5, 0.1)
var orders = exchange.GetOrders()
for (var i = 0 ; i < orders.length ; i++) {
exchange.CancelOrder(orders[i].Id, "Cancelled orders:", orders[i])
Sleep(500)
}
}
def main():
if exchange.GetName().find("Futures_") != -1:
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.")
exchange.SetContractType("swap")
exchange.SetDirection("buy")
ticker = exchange.GetTicker()
exchange.Buy(ticker["Last"] * 0.5, 0.1)
orders = exchange.GetOrders()
for i in range(len(orders)):
exchange.CancelOrder(orders[i]["Id"], "Cancelled orders:", orders[i])
Sleep(500)
void main() {
if (exchange.GetName().find("Futures_") != std::string::npos) {
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.");
exchange.SetContractType("swap");
exchange.SetDirection("buy");
}
auto ticker = exchange.GetTicker();
exchange.Buy(ticker.Last * 0.5, 0.1);
auto orders = exchange.GetOrders();
for (int i = 0 ; i < orders.size() ; i++) {
exchange.CancelOrder(orders[i].Id, "Cancelled orders:", orders[i]);
Sleep(500);
}
}
एफएमजेड एपीआई फ़ंक्शन जो लॉग आउटपुट फ़ंक्शन जैसेःLog()
, exchange.Buy()
, exchange.CancelOrder()
आवश्यक मापदंडों के बाद कुछ सहायक आउटपुट मापदंडों का अनुसरण किया जा सकता है। उदाहरण के लिएःexchange.CancelOrder(orders[i].Id, orders[i])
, ताकि आदेश रद्द करते समय जिसका आईडी हैorders[i].Id
, आदेश की जानकारी इसके साथ आउटपुट की जाती है।orders[i]
.
यदि आप डॉकर के पुराने संस्करण का उपयोग कर रहे हैं, तो exchange.CancelOrder() फ़ंक्शन का orderId पैरामीटर वर्तमान दस्तावेज़ में वर्णित orderId से भिन्न हो सकता है.
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.
..exchange.GetOrder()
आदेश की जानकारी प्राप्त करने के लिए फ़ंक्शन का उपयोग किया जाता है.
आदेश संख्या के अनुसार आदेश विवरण की क्वेरी करें, और यदि क्वेरी सफल होती है तो {@struct/Order Order} संरचना लौटाएं, या यदि क्वेरी विफल होती है तो शून्य लौटाएं. {@struct/Order Order}, शून्य मान
विनिमय.GetOrder ((orderId)
..orderId
पैरामीटर का उपयोग क्वेरी करने के क्रम को निर्दिष्ट करने के लिए किया जाता है.
विशेषताId
एफएमजेड प्लेटफॉर्म के आदेश {@struct/Order Order} संरचना में एक्सचेंज उत्पाद कोड और एक्सचेंज मूल आदेश आईडी शामिल है, जिन्हें अंग्रेजी अल्पविराम से अलग किया गया है। उदाहरण के लिए, विशेषताId
स्पॉट ट्रेडिंग जोड़ी के ऑर्डर का प्रारूपETH_USDT
ओकेएक्स एक्सचेंज का मूल्य हैःETH-USDT,1547130415509278720
.
पैरामीटरorderId
में पारित किया जब कॉलexchange.GetOrder()
एक आदेश की क्वेरी करने के लिए समारोह के साथ संगत हैId
आदेश {@struct/Order Order} संरचना की संपत्ति।
आदेशित सच स्ट्रिंग
function main(){
var id = exchange.Sell(1000, 1)
// Parameter id is the order number, you need to fill in the number of the order you want to query
var order = exchange.GetOrder(id)
Log("Id:", order.Id, "Price:", order.Price, "Amount:", order.Amount, "DealAmount:",
order.DealAmount, "Status:", order.Status, "Type:", order.Type)
}
def main():
id = exchange.Sell(1000, 1)
order = exchange.GetOrder(id)
Log("Id:", order["Id"], "Price:", order["Price"], "Amount:", order["Amount"], "DealAmount:",
order["DealAmount"], "Status:", order["Status"], "Type:", order["Type"])
void main() {
auto id = exchange.Sell(1000, 1);
auto order = exchange.GetOrder(id);
Log("Id:", order.Id, "Price:", order.Price, "Amount:", order.Amount, "DealAmount:",
order.DealAmount, "Status:", order.Status, "Type:", order.Type);
}
..exchange.GetOrder()
कार्य कुछ एक्सचेंजों द्वारा समर्थित नहीं है।AvgPrice
{@struct/Order Order} संरचना में रिटर्न मान की विशेषता लेनदेन की औसत कीमत है। कुछ एक्सचेंजों इस क्षेत्र का समर्थन नहीं करते हैं, और यदि वे नहीं करते हैं, तो यह 0 पर सेट है।
यदि आप डॉकर के पुराने संस्करण का उपयोग कर रहे हैं, तोorderId
पैरामीटरexchange.GetOrder()
कार्य से भिन्न हो सकता हैorderId
वर्तमान प्रलेखन में वर्णित है।
एक्सचेंजों जो समर्थन नहीं करते हैंexchange.GetOrder()
कार्य:
फ़ंक्शन का नाम | असमर्थित स्पॉट एक्सचेंज | बिना समर्थन वाले फ्यूचर्स एक्सचेंज |
---|---|---|
प्राप्त करेंआदेश | Zaif/Coincheck/बिटस्टैम्प | – |
{@struct/Order Order}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@struct/Trade/Order Order}, {@fun/Trade/exchange.GetOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/Exchange.GetOrders exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders exchange.GetOrders exchange.GetOrders}, {@fun/Trade/Trade/exchange
..exchange.GetOrders()
कार्य का उपयोग बकाया आदेश प्राप्त करने के लिए किया जाता है।
..exchange.GetOrders()
function {@struct/Order Order} संरचनाओं की एक सरणी लौटाता है यदि डेटा के लिए अनुरोध सफल होता है, और यदि डेटा के लिए अनुरोध विफल होता है तो यह शून्य मान लौटाता है.
{@struct/Order Order} सरणी, शून्य मान
विनिमय.GetOrders ((() विनिमय.GetOrders ((प्रतीक)
पैरामीटरsymbol
सेट करने के लिए प्रयोग किया जाता हैलेनदेन चिह्नयालेन-देन प्रतीक श्रेणीपूछताछ की जाए।
स्पॉट एक्सचेंज ऑब्जेक्ट्स के लिए, यदिsymbol
पैरामीटर पारित नहीं किया जाता है, सभी स्पॉट उत्पादों के अधूरे आदेश डेटा का अनुरोध किया जाएगा।
वायदा विनिमय वस्तुओं के लिए, यदिsymbol
पैरामीटर पारित नहीं किया जाता है, डिफ़ॉल्ट रूप से वर्तमान ट्रेडिंग जोड़ी और अनुबंध कोड के आयाम सीमा में सभी किस्मों के अधूरे आदेश डेटा का अनुरोध करना है।
चिह्न झूठी स्ट्रिंग
/*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 = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for (var symbol of arrSymbol) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01)
}
var spotOrders = exchange.GetOrders()
var tbls = []
for (var orders of [spotOrders]) {
var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''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 = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for symbol in arrSymbol:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 0.01)
spotOrders = exchange.GetOrders()
tbls = []
for orders in [spotOrders]:
tbl = {"type": "table", "title": "test GetOrders", "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*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"}]
*/
void main() {
auto arrSymbol = {"ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"};
for (const auto& symbol : arrSymbol) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01);
}
auto spotOrders = exchange.GetOrders();
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {spotOrders};
for (const auto& orders : arr) {
json tbl = R"({
"type": "table",
"title": "test GetOrders",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back("Symbol");
arrJson.push_back("Id");
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
स्पॉट एक्सचेंज ऑब्जेक्ट का उपयोग करें वर्तमान मूल्य के आधे मूल्य पर कई अलग-अलग ट्रेडिंग जोड़े के लिए खरीद ऑर्डर रखने के लिए, और फिर बकाया ऑर्डर जानकारी की क्वेरी करें।
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for (var symbol of arrSymbol) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1)
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1)
}
var defaultOrders = exchange.GetOrders()
var swapOrders = exchange.GetOrders("USDT.swap")
var futuresOrders = exchange.GetOrders("USDT.futures")
var btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
var tbls = []
var arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
var tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for (var index in arr) {
var orders = arr[index]
var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for symbol in arrSymbol:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 1)
exchange.CreateOrder(symbol, "sell", t["Last"] * 2, 1)
defaultOrders = exchange.GetOrders()
swapOrders = exchange.GetOrders("USDT.swap")
futuresOrders = exchange.GetOrders("USDT.futures")
btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
tbls = []
arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for index in range(len(arr)):
orders = arr[index]
tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order["Symbol"], order["Id"], order["Price"], order["Amount"], order["DealAmount"], order["AvgPrice"], order["Status"], order["Type"], order["Offset"], order["ContractType"]])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
for (const auto& symbol : arrSymbol) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1);
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1);
}
auto defaultOrders = exchange.GetOrders();
auto swapOrders = exchange.GetOrders("USDT.swap");
auto futuresOrders = exchange.GetOrders("USDT.futures");
auto btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap");
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders};
std::string tblDesc[] = {"defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"};
for (int index = 0; index < arr.size(); index++) {
auto orders = arr[index];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
tbl["title"] = tblDesc[index];
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back(order.Symbol);
arrJson.push_back(to_string(order.Id)); // The Id attribute type in the Order structure is TId, which is encoded using a C++ function to_string built into the FMZ platform.
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
कई अलग-अलग ट्रेडिंग जोड़े और अनुबंध कोडों के लिए ऑर्डर देने के लिए वायदा विनिमय वस्तुओं का उपयोग करें। प्रतिपक्ष मूल्य से दूर की कीमतों पर ऑर्डर दें, एक अपूर्ण स्थिति में ऑर्डर रखें, और कई तरीकों से क्वेरी ऑर्डर करें।
function main() {
var orders = exchange.GetOrders("BTC_USDT") // Examples of spot products
// var orders = exchange.GetOrders("BTC_USDT.swap") // Examples of futures products
Log("orders:", orders)
}
def main():
orders = exchange.GetOrders("BTC_USDT") # Examples of spot products
# orders = exchange.GetOrders("BTC_USDT.swap") # Examples of futures products
Log("orders:", orders)
void main() {
auto orders = exchange.GetOrders("BTC_USDT"); // Examples of spot products
// auto orders = exchange.GetOrders("BTC_USDT.swap"); // Examples of futures products
Log("orders:", orders);
}
जब कॉलexchange.GetOrders()
कार्य, में पारितSymbol
एक विशिष्ट ट्रेडिंग जोड़ी और अनुबंध कोड के लिए ऑर्डर डेटा का अनुरोध करने के लिए पैरामीटर।
मेंGetOrders
फंक्शन, प्रतीक पैरामीटर के उपयोग के परिदृश्यों को इस प्रकार संक्षेप में प्रस्तुत किया गया हैः
एक्सचेंज ऑब्जेक्ट वर्गीकरण | प्रतीक पैरामीटर | क्वेरी का दायरा | टिप्पणियाँ |
---|---|---|---|
स्पॉट | प्रतीक पैरामीटर पास न करें | सभी स्पॉट ट्रेडिंग जोड़े की क्वेरी करें | सभी कॉल परिदृश्यों के लिए, यदि एक्सचेंज इंटरफ़ेस इसका समर्थन नहीं करता है, तो एक त्रुटि की सूचना दी जाएगी और एक शून्य मान लौटाया जाएगा। कोई और स्पष्टीकरण नहीं दिया जाएगा। |
स्पॉट | व्यापार प्रकार निर्दिष्ट करें, प्रतीक पैरामीटर हैः |
निर्दिष्ट BTC_USDT ट्रेडिंग जोड़ी की क्वेरी करें | स्पॉट एक्सचेंज ऑब्जेक्ट्स के लिए प्रतीक पैरामीटर प्रारूप हैः |
वायदा | प्रतीक पैरामीटर पास न करें | वर्तमान ट्रेडिंग जोड़ी और अनुबंध कोड आयाम सीमा के भीतर सभी ट्रेडिंग उत्पादों को क्वेरी करें | यदि वर्तमान ट्रेडिंग जोड़ी BTC_USDT है और अनुबंध कोड स्वैप है, तो सभी USDT-मार्जिन वाले स्थायी अनुबंधों को क्वेरी किया जाएगा। यह कॉल करने के बराबर हैGetOrders("USDT.swap") |
वायदा | व्यापार प्रकार निर्दिष्ट करें, प्रतीक पैरामीटर हैः |
एक निर्दिष्ट बीटीसी के लिए यूएसडीटी आधारित स्थायी अनुबंध की क्वेरी करें | वायदा विनिमय वस्तुओं के लिए पैरामीटर प्रतीक प्रारूप हैःव्यापारिक जोड़ीऔरअनुबंध कोडएफएमजेड प्लेटफॉर्म द्वारा परिभाषित, अक्षरों से अलग". . |
वायदा | ट्रेडिंग उत्पादों की श्रेणी निर्दिष्ट करें, प्रतीक पैरामीटर हैः |
सभी USDT आधारित स्थायी अनुबंधों की क्वेरी करें | - |
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज | प्रतीक पैरामीटर पास न करें | वर्तमान ट्रेडिंग जोड़ी आयाम सीमा के भीतर सभी विकल्प अनुबंध पूछताछ करें | यदि वर्तमान ट्रेडिंग जोड़ी BTC_USDT है, तो अनुबंध एक विकल्प अनुबंध पर सेट किया जाता है, उदाहरण के लिए, Binance विकल्प अनुबंधः BTC-240108-40000-C |
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज | विशिष्ट व्यापारिक उत्पाद निर्दिष्ट करें | निर्दिष्ट विकल्प अनुबंध की क्वेरी करें | उदाहरण के लिए Binance Futures Exchange के लिए, प्रतीक पैरामीटर हैः BTC_USDT.BTC-240108-40000-C |
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज | ट्रेडिंग उत्पादों की श्रेणी निर्दिष्ट करें, प्रतीक पैरामीटर हैः |
सभी USDT आधारित विकल्प अनुबंधों की खोज करें | - |
मेंGetOrders
फ्यूचर्स एक्सचेंज ऑब्जेक्ट क्वेरी
आयाम सीमा का सार इस प्रकार हैः
प्रतीक पैरामीटर | अनुरोध सीमा परिभाषा | टिप्पणियाँ |
---|---|---|
USDT.swap | यूएसडीटी आधारित स्थायी अनुबंध सीमा। | के लिए |
आयाम जो एक्सचेंज एपीआई इंटरफ़ेस द्वारा समर्थित नहीं हैं, एक त्रुटि की सूचना दी जाएगी और शून्य मान लौटाया जाएगा जब बुला रहा है. ∙ ∙ USDT.futures ∙ ∙ USDT आधारित वितरण अनुबंध रेंज ∙ ∙ ∙ ∙ USD.swap ∙ मुद्रा आधारित स्थायी की सीमा अनुबंध। ∙ ∙ USD.futures ∙ मुद्रा आधारित वितरण की सीमा अनुबंध। ∙ ∙ USDT.option ∙ ∙ ∙ USDT आधारित विकल्प अनुबंध रेंज ∙ ∙ ∙ ∙ ∙ USD.option ∙ मुद्रा आधारित विकल्प अनुबंध रेंज ∙ USDT.futures_combo CFD संयोजनों की एक श्रृंखला। फ्यूचर्स_डेरिबिट एक्सचेंज USD.futures_ff मिश्रित मार्जिन वितरण अनुबंधों की एक श्रृंखला। फ्यूचर्स_क्रैकेन एक्सचेंज USD.swap_pf. मिश्रित मार्जिन स्थायी अनुबंधों की एक श्रृंखला। ∙∙ फ्यूचर्स_क्रैकेन एक्सचेंज
जब विनिमय वस्तु द्वारा दर्शाया गया खाताexchange
के भीतर कोई लंबित आदेश नहीं हैक्वेरी सीमायाविनिर्दिष्ट व्यापारिक साधन(अपूर्ति न हुई स्थिति में सक्रिय आदेश), इस फ़ंक्शन को कॉल करने से खाली सरणी लौटती है, अर्थातः[]
.
निम्नलिखित एक्सचेंजों को वर्तमान में अधूरे आदेशों की क्वेरी करते समय उपकरण को उपकरण पैरामीटर में पास करने की आवश्यकता होती है। इन एक्सचेंजों के साथ GetOrders फ़ंक्शन को कॉल करते समय, यदि उपकरण पैरामीटर पास नहीं किया जाता है, तो केवल वर्तमान उपकरण के अधूरे आदेशों का अनुरोध किया जाता है, सभी उपकरणों के अधूरे आदेशों का नहीं (क्योंकि एक्सचेंज इंटरफ़ेस इसका समर्थन नहीं करता है) ।
Zaif, MEXC, LBank, Korbit, Coinw, BitMart, Bithumb, BitFlyer, BigONE
एक्सचेंजों जो समर्थन नहीं करते हैंexchange.GetOrders()
कार्य:
फ़ंक्शन का नाम | असमर्थित स्पॉट एक्सचेंज | बिना समर्थन वाले फ्यूचर्स एक्सचेंज |
---|---|---|
GetOrders प्राप्त करें | – | वायदा_बिबॉक्स |
{@struct/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@struct/Trade/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetOrder exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetOrder exchange.GetOrder exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOr
..exchange.GetHistoryOrders()
वर्तमान व्यापारिक जोड़ी, अनुबंधों के लिए ऐतिहासिक आदेश प्राप्त करने के लिए कार्य का उपयोग किया जाता है; यह विशिष्ट व्यापारिक किस्मों के विनिर्देश का समर्थन करता है।
..exchange.GetHistoryOrders()
function {@struct/Order Order} संरचनाओं की एक सरणी लौटाता है यदि डेटा के लिए अनुरोध सफल होता है, और शून्य यदि अनुरोध विफल होता है.
{@struct/Order Order} सरणी, शून्य मान
विनिमय.GetHistoryOrders() exchange.GetHistoryOrders (प्रतीक) exchange.GetHistoryOrders ((प्रतीक, के बाद से) exchange.GetHistoryOrders ((प्रतीक, के बाद से, सीमा) विनिमय.GetHistoryOrders ((के बाद से) exchange.GetHistoryOrders ((जबसे, सीमा)
..symbol
पैरामीटर का उपयोग व्यापार चिह्न को निर्दिष्ट करने के लिए किया जाता है।BTC_USDT
व्यापारिक जोड़ी, उदाहरण के लिए, जबexchange
एक स्पॉट एक्सचेंज ऑब्जेक्ट है, पैरामीटर प्रारूप के लिएsymbol
हैBTC_USDT
यदि यह एक वायदा विनिमय वस्तु है, उदाहरण के लिए स्थायी अनुबंध लेते हुए, पैरामीटर प्रारूप के लिएsymbol
है:BTC_USDT.swap
.
यदि आप विकल्प अनुबंधों के आदेश डेटा पूछ रहे हैं, पैरामीटर सेट करेंsymbol
तक"BTC_USDT.BTC-240108-40000-C"
(उदाहरण के लिए बिनेंस विकल्प BTC-240108-40000-C लेते हुए) प्रारूपव्यापारिक जोड़ीएफएमजेड प्लेटफॉर्म द्वारा परिभाषित और एक्सचेंज द्वारा परिभाषित विशिष्ट विकल्प अनुबंध कोड, जो वर्ण
चिह्न
झूठी
स्ट्रिंग
दsince
पैरामीटर का उपयोग मिलीसेकंड में क्वेरी के प्रारंभ समयस्टैम्प को निर्दिष्ट करने के लिए किया जाता है.
के बाद से
झूठी
संख्या
दlimit
पैरामीटर का उपयोग क्वेरी करने के आदेशों की संख्या निर्दिष्ट करने के लिए किया जाता है.
सीमा
झूठी
संख्या
function main() {
var historyOrders = exchange.GetHistoryOrders()
Log(historyOrders)
}
def main():
historyOrders = exchange.GetHistoryOrders()
Log(historyOrders)
void main() {
auto historyOrders = exchange.GetHistoryOrders();
Log(historyOrders);
}
symbol
, since
, limit
पैरामीटर निर्दिष्ट नहीं हैं, डिफ़ॉल्ट क्वेरी वर्तमान ट्रेडिंग जोड़ी, अनुबंध के ऐतिहासिक आदेश है। वर्तमान समय के निकटतम एक निश्चित सीमा के भीतर ऐतिहासिक आदेशों को क्वेरी करता है, क्वेरी रेंज एक्सचेंज इंटरफ़ेस की एकल क्वेरी रेंज पर निर्भर करती है।symbol
पैरामीटर निर्दिष्ट है, सेट व्यापार प्रकार के लिए आदेशों के इतिहास की क्वेरी।since
पैरामीटर निर्दिष्ट है, वर्तमान समय की दिशा में क्वेरीsince
प्रारंभ समय के रूप में टाइमस्टैम्प।limit
पैरामीटर निर्दिष्ट है, क्वेरी प्रविष्टियों की पर्याप्त संख्या के बाद लौटाया जाता है.एक्सचेंजों जो समर्थन नहीं करते हैंexchange.GetHistoryOrders()
कार्य:
फ़ंक्शन का नाम | असमर्थित स्पॉट एक्सचेंज | बिना समर्थन वाले फ्यूचर्स एक्सचेंज |
---|---|---|
GetHistoryOrders प्राप्त करें | Zaif / Upbit / Coincheck / Bitstamp / Bithumb / BitFlyer / BigONE | फ्यूचर्स_डीवाईडीएक्स / फ्यूचर्स_बिबॉक्स / फ्यूचर्स_अपोलोएक्स |
{@struct/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@struct/Trade/Order Order}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/Trade.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/Exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrders exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetOrder exchange.GetOrder exchange.GetOrder exchange.GetOrder exchange
exchange.SetPrecision()
समारोह की सटीकता को सेट करने के लिए प्रयोग किया जाता हैexchange
विनिमय वस्तुमूल्यऔरआदेश राशि, सेट करने के बाद, सिस्टम स्वचालित रूप से अतिरिक्त डेटा को अनदेखा करेगा।
exchange.SetPrecision ((मूल्यPrecision, राशिPrecision)
..pricePrecision
पैरामीटर का उपयोग मूल्य डेटा की सटीकता को नियंत्रित करने के लिए किया जाता है।
मूल्य सटीकता
सच
संख्या
दamountPrecision
पैरामीटर का उपयोग आदेश देने के लिए डेटा की मात्रा की सटीकता को नियंत्रित करने के लिए किया जाता है।
राशि सटीकता
सच
संख्या
function main(){
// Set the decimal precision of price to 2 bits, and the decimal precision of variety order amount to 3 bits
exchange.SetPrecision(2, 3)
}
def main():
exchange.SetPrecision(2, 3)
void main() {
exchange.SetPrecision(2, 3);
}
बैकटेस्टिंग प्रणाली इस फ़ंक्शन का समर्थन नहीं करती है, और बैकटेस्टिंग प्रणाली की संख्यात्मक सटीकता स्वचालित रूप से संभाली जाती है।
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}
विनिमय वस्तु की वर्तमान विनिमय दर सेट करें.
exchange.SetRate (दर)
..rate
रूपांतरण विनिमय दर को निर्दिष्ट करने के लिए पैरामीटर का प्रयोग किया जाता है।
दर
सच
संख्या
function main(){
Log(exchange.GetTicker())
// Set exchange rate conversion
exchange.SetRate(7)
Log(exchange.GetTicker())
// Set to 1, no conversion
exchange.SetRate(1)
}
def main():
Log(exchange.GetTicker())
exchange.SetRate(7)
Log(exchange.GetTicker())
exchange.SetRate(1)
void main() {
Log(exchange.GetTicker());
exchange.SetRate(7);
Log(exchange.GetTicker());
exchange.SetRate(1);
}
यदि विनिमय दर का मूल्य विनिमय दर के आधार पर निर्धारित किया गया हैexchange.SetRate()
7. तब सभी मूल्य जानकारी जैसे कि टिकर्स, गहराई, आदेश मूल्य, आदि के लिए विनिमय वर्तमान द्वारा दर्शाया जाता हैexchange
विनिमय वस्तु को 7 की निर्धारित विनिमय दर से गुणा करके परिवर्तित किया जाएगा। उदाहरण के लिए,exchange
मुद्रा के रूप में अमेरिकी डॉलर के साथ एक विनिमय है। निष्पादन के बादexchange.SetRate(7)
, लाइव बाजार पर सभी कीमतों को मूल्य के करीब परिवर्तित किया जाएगाCNY7 से गुणा करके मूल्यवर्ग
{@मज़ा/बाजार/विनिमय.GetRate विनिमय.GetRate}
..exchange.IO()
फ़ंक्शन का उपयोग एक्सचेंज ऑब्जेक्ट से संबंधित अन्य इंटरफेस कॉल के लिए किया जाता है.
..exchange.IO()
फ़ंक्शन एक्सचेंज ऑब्जेक्ट से संबंधित अन्य इंटरफेस को कॉल करता है, एक सफल कॉल पर अनुरोधित प्रतिक्रिया डेटा लौटाता है और यह एक असफल कॉल पर शून्य लौटाता है।
string, number, bool, object, array, null, और कोई अन्य प्रकार जो सिस्टम द्वारा समर्थित है
exchange.IO(k,... args)
..k
पैरामीटर का उपयोग कॉल प्रकार सेट करने के लिए किया जाता है, वैकल्पिक मानों के साथ"api"
, "currency"
, "base"
, "trade_margin"
, "trade_normal"
, "public_base"
, "mbase"
, selfTradePreventionMode
, simulate
, cross
, dual
, unified
और इसी तरह।
क
सच
स्ट्रिंग
विस्तारित पैरामीटर, विशिष्ट कॉल परिदृश्य के अनुसार पारित,arg
पैरामीटर एक से अधिक पारित किया जा सकता है।exchange.IO()
कार्य, विभिन्न पैरामीटर सेटिंग्स विभिन्न कार्यों के अनुरूप हैं।exchange.IO()
कार्य अनिश्चित हैं।
आर्ग
सच
string, number, bool, object, array, null और सिस्टम द्वारा समर्थित कोई अन्य प्रकार
function main() {
var arrOrders = [
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
]
// Call exchange.IO to access the exchange's bulk order interface directly
var ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", JSON.stringify(arrOrders))
Log(ret)
}
import json
def main():
arrOrders = [
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
]
ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", json.dumps(arrOrders))
Log(ret)
void main() {
json arrOrders = R"([
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
])"_json;
auto ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", arrOrders.dump());
Log(ret);
}
का उपयोग करनाexchange.IO("api", httpMethod, resource, params, raw)
आमंत्रणexchange.IO()
कार्यक्षमता, यह आवश्यक है समझने के लिए एपीआई इंटरफेस के विनिमय और जाँच प्रासंगिक प्रलेखन पहले. यह आप विस्तार करने के लिए अनुमति देगा कार्यक्षमता है कि नहीं है में जोड़ा गया है एफएमजेड मंच.POST
अनुरोध आपको एन्क्रिप्शन, हस्ताक्षर, या पैरामीटर सत्यापित करने के बारे में चिंता करने की आवश्यकता नहीं है, जो पहले से ही नीचे एफएमजेड द्वारा संभाला जाता है, जब तक आप संबंधित पैरामीटर भरते हैं। आप के बैच आदेश उदाहरण का संदर्भ ले सकते हैंओकेएक्स एक्सचेंजवायदा अनुबंध, और पैरामीटर का उपयोगraw
आदेश मापदंडों को पारित करने के लिएः
var amount = 1
var price = 10
var basecurrency = "ltc"
function main () {
// Note that both amount.toString() and price.toString() have a ' character on the left and right side
var message = "symbol=" + basecurrency + "&amount='" + amount.toString() + "'&price='" + price.toString() + "'&side=buy" + "&type=limit"
var id = exchange.IO("api", "POST", "/v1/order/new", message)
}
amount = 1
price = 10
basecurrency = "ltc"
def main():
message = "symbol=" + basecurrency + "&amount='" + str(amount) + "'&price='" + str(price) + "'&side=buy" + "&type=limit"
id = exchange.IO("api", "POST", "/v1/order/new", message)
void main() {
auto amount = 1.0;
auto price = 10.0;
auto basecurrency = "ltc";
string message = format("symbol=%s&amount=\"%.1f\"&price=\"%.1f\"&side=buy&type=limit", basecurrency, amount, price);
auto id = exchange.IO("api", "POST", "/v1/order/new", message);
}
यदि कुंजी मानparams
पैरामीटर (यानी, Http अनुरोध पैरामीटर) एक स्ट्रिंग है, यह पैरामीटर मूल्य को लपेटने के लिए पैरामीटर मूल्य के चारों ओर एकल उद्धरण (यानी, प्रतीक ') में लिखा जाना चाहिए।
function main() {
var ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
Log(ret)
}
def main():
ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
Log(ret)
void main() {
auto ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC");
Log(ret);
}
यह पूर्ण यूआरएल पैरामीटर में पारित करने का समर्थन करता है, जो आधार पते को स्विच करने के संचालन को छोड़ सकता हैexchange.SetBase()
कार्य) ।
function main(){
var ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
Log(ret)
}
def main():
ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
Log(ret)
void main() {
auto ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT");
Log(ret);
}
पैरामीटर के बिना कॉल का उदाहरणraw
:
function main() {
// For example, if you set the current trading pair of the exchange object to BTC_USDT at the beginning of the live trading, print the current trading pair tickers
Log(exchange.GetTicker())
// Switch the trading pair to LTC_BTC
exchange.IO("currency", "LTC_BTC")
Log(exchange.GetTicker())
}
def main():
Log(exchange.GetTicker())
exchange.IO("currency", "LTC_BTC")
Log(exchange.GetTicker())
void main() {
Log(exchange.GetTicker());
exchange.IO("currency", "LTC_BTC");
Log(exchange.GetTicker());
}
वर्तमान विनिमय की व्यापार जोड़ी स्विच करें, ताकि यह कोड द्वारा विन्यस्त व्यापार जोड़ी स्विच करेगालाइव ट्रेडिंग सृजन परयाबैकटेस्ट में.
function main () {
// exchanges[0] is the first exchange object added when the live trading is created
exchanges[0].IO("base", "https://api.huobi.pro")
}
def main():
exchanges[0].IO("base", "https://api.huobi.pro")
void main() {
exchanges[0].IO("base", "https://api.huobi.pro");
}```
For example, the default base address when the exchange object is wrapped is ```https://api.huobipro.com```, and when you need to switch to ```https://api.huobi.pro```, use the following code to switch:
```javascript
function main() {
exchange.SetBase("https://api.bitfinex.com")
exchange.IO("mbase", "https://api-pub.bitfinex.com")
}
def main():
exchange.SetBase("https://api.bitfinex.com")
exchange.IO("mbase", "https://api-pub.bitfinex.com")
void main() {
exchange.SetBase("https://api.bitfinex.com");
exchange.IO("mbase", "https://api-pub.bitfinex.com");
}
उदाहरण के लिए, टिकर इंटरफेस और ट्रेडिंग इंटरफेस के लिए अलग-अलग आधार पते वाले एक्सचेंजों के लिए, बिटकॉइन फ्यूचर्स में दो पते हैं, एक टिकर इंटरफेस के लिए और दूसरा ट्रेडिंग इंटरफेस के लिए। बिटकॉइन फ्यूचर्स निजी इंटरफ़ेस आधार पते का उपयोग करके स्विच करते हैंexchange.SetBase("xxx")
. Bitfinex वायदा का उपयोग कर सार्वजनिक इंटरफ़ेस आधार पते स्विचexchange.IO("mbase", "xxx")
.
क्रिप्टोक्यूरेंसी-केंद्रित एक्सचेंजों के लिए अन्य एपीआई इंटरफेस कॉल जो समान रूप से कैप्सुलेट नहीं हैं, पैरामीटर के साथk
सेट करना"api"
:
exchange.IO("api", httpMethod, resource, params, raw)
POST
, GET
आदि।URL
...exchange.IO("api", httpMethod, resource, params, raw)
फ़ंक्शन कॉल एक्सचेंज इंटरफेस तक पहुंच जाएगा और यदि कॉल विफल हो जाती है और त्रुटि होती है तो शून्य लौटाएगा.
केवल वास्तविक व्यापार का समर्थन करता हैexchange.IO("api", httpMethod, resource, params, raw)
function.
II. व्यापारिक जोड़े बदलने के लिए, पैरामीटरk
पर सेट है"currency"
:
exchange.IO("currency", currency)
मुद्राः पैरामीटर एक समान अपरकेस प्रारूप के साथ एक स्ट्रिंग प्रकार है, जो अलग करने के लिए एक रेखांकन का उपयोग करता हैbaseCurrency
सेquoteCurrency
, जैसेBTC_USDT
.
ETH_BTC
केवल पर स्विच कर सकते हैंLTC_BTC
, नहीं करनाLTC_USDT
.exchange.IO("currency", currency)
व्यापारिक जोड़े बदलने के लिए।क्रिप्टोक्यूरेंसी स्पॉट एक्सचेंज ऑब्जेक्ट लीवरेज्ड अकाउंट मोड को स्विच करने के लिए प्रयोग किया जाता हैः
k
पर सेट है"trade_margin"
स्पॉट लीवरेज अकाउंट मोड पर स्विच करने के लिए। ऑर्डर देने और खाता परिसंपत्तियों को प्राप्त करने के लिए एक्सचेंज के स्पॉट लीवरेज इंटरफेस तक पहुंच होगी।
यदि एक्सचेंज स्पॉट लीवरेज में पूर्ण मार्जिन और अलग-थलग मार्जिन के बीच अंतर करता है, तो उपयोग करेंःexchange.IO("trade_super_margin")
लीवरेज्ड खाते के लिए पूर्ण मार्जिन पर स्विच करना औरexchange.IO("trade_margin")
लीवरेज्ड खाते के लिए अलग-थलग मार्जिन पर स्विच करने के लिए।k
पर सेट है"trade_normal"
सामान्य स्पॉट खाता मोड पर लौटने के लिए।ऐसे स्पॉट एक्सचेंज जो लाभप्रद खाता मॉडल के बीच स्विचिंग का समर्थन करते हैंः
आदान-प्रदान | विशेष टिप्पणी |
---|---|
ओकेएक्स | लीवरेज्ड अकाउंट मोड में ट्रेडिंग जोड़े सामान्य से भिन्न होते हैं, कुछ ट्रेडिंग जोड़े में वे नहीं हो सकते हैं।exchange.IO("trade_super_margin") लीवरेज्ड खातों के लिए पूर्ण स्थिति पर स्विच करने और उपयोग करने के लिएexchange.IO("trade_margin") स्थिति से स्थिति में स्विच करने के लिए।trade_normal सामान्य स्पॉट मोड पर स्विच करने के लिए।exchange.IO("tdMode", "cross") सीधे लीवरेज मोड को निर्दिष्ट करने के लिए। |
हुओबी | लीवरेज्ड अकाउंट मोड ट्रेडिंग जोड़े सामान्य से भिन्न होते हैं, कुछ ट्रेडिंग जोड़े में वे नहीं हो सकते हैं। Huobi लीवरेज्ड खातों में पूर्ण पद और स्थिति-दर-स्थिति हैं। उपयोग करेंtrade_margin लेनदेन खाते की स्थिति के अनुसार लेनदेन पर स्विच करने के लिए,trade_super_margin लीवरेज खाते की पूर्ण स्थिति पर स्विच करने के लिए।trade_normal सामान्य मुद्रा-मुद्रा मोड पर स्विच करने के लिए। |
बाइनेंस | लीवरेज्ड खाता मोड को स्थिति के अनुसार स्थिति और पूर्ण स्थिति, उपयोग में विभाजित किया गया है।trade_margin स्थिति से स्थिति में स्विच करने के लिए, उपयोगtrade_super_margin पूर्ण स्थिति में स्विच करने के लिए, उपयोगtrade_normal सामान्य मुद्रा-मुद्रा मोड पर स्विच करने के लिए। |
द्वार | लीवरेज्ड खाता मोड को स्थिति के अनुसार स्थिति और पूर्ण स्थिति, उपयोग में विभाजित किया गया है।trade_margin स्थिति से स्थिति में स्विच करने के लिए, उपयोगtrade_super_margin पूर्ण स्थिति में स्विच करने के लिए, उपयोगtrade_normal सामान्य मुद्रा-मुद्रा मोड पर स्विच करने के लिए। |
AscendEx | प्रयोगexchange.IO("trade_margin") लीवरेज खाते के मोड पर स्विच करने के लिए औरexchange.IO("trade_normal") सामान्य खाता मोड पर वापस स्विच करने के लिए। |
वू | प्रयोगexchange.IO("trade_margin") लीवरेज खाते के मोड पर स्विच करने के लिए औरexchange.IO("trade_normal") सामान्य खाता मोड पर वापस स्विच करने के लिए। |
CoinEx | प्रयोगexchange.IO("trade_margin") लीवरेज्ड खाता मोड पर स्विच करने के लिए औरexchange.IO("trade_normal") सामान्य खाता मोड पर वापस स्विच करने के लिए। |
अन्य स्विचिंग कार्य:देखोexchange.IO()
कार्य के लिएअन्य स्विचिंग फ़ंक्शनउपयोगकर्ता गाइड में।
{@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}
..exchange.Log()
function का उपयोग लॉग कॉलम क्षेत्र में ऑर्डर प्लेसमेंट और निकासी के लॉग को आउटपुट करने के लिए किया जाता है। जब कॉल किया जाता है, तो कोई ऑर्डर नहीं किया जाता है, केवल लेनदेन लॉग आउटपुट और रिकॉर्ड किया जाता है।
विनिमय.लॉग (ऑर्डर) प्रकार, मूल्य, राशि विनिमय.लॉग ((ऑर्डरप्रकार, कीमत, राशि,... args)
..orderType
पैरामीटर का उपयोग आउटपुट लॉग प्रकार सेट करने के लिए किया जाता है, वैकल्पिक मान हैं {@var/LOG_TYPE/LOG_TYPE_BUY LOG_TYPE_BUY}, {@var/LOG_TYPE/LOG_TYPE_SELL LOG_TYPE_SELL}, {@var/LOG_TYPE/LOG_TYPE_CANCEL LOG_TYPE_CANCEL}.
आदेशप्रकार
सच
संख्या
दprice
पैरामीटर का उपयोग आउटपुट लॉग में प्रदर्शित मूल्य को सेट करने के लिए किया जाता है।
मूल्य
सच
संख्या
दamount
पैरामीटर का उपयोग आउटपुट लॉग में प्रदर्शित किए गए ऑर्डर की मात्रा को सेट करने के लिए किया जाता है।
राशि
सच
संख्या
विस्तारित मापदंड जो इस लॉग के लिए संगत जानकारी आउटपुट कर सकते हैं,arg
पैरामीटर एक से अधिक पारित किया जा सकता है।
आर्ग
झूठी
string, number, bool, object, array, null और सिस्टम द्वारा समर्थित कोई अन्य प्रकार
var id = 123
function main() {
// Order type buy, price 999, amount 0.1
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
// Cancel the order
exchange.Log(LOG_TYPE_CANCEL, id)
}
id = 123
def main():
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
exchange.Log(LOG_TYPE_CANCEL, id)
void main() {
auto id = 123;
exchange.Log(LOG_TYPE_BUY, 999, 0.1);
exchange.Log(LOG_TYPE_CANCEL, id);
}
प्रयोग करनाexchange.Log(orderType, price, amount)
परीक्षणों के बाद लाइव ट्रेडिंग ऑर्डर के लिए इस्तेमाल किया जा सकता है, अनुकरणीय ऑर्डर प्लेसमेंट, और यह लॉगिंग ऑर्डर प्लेसमेंट में सहायता कर सकता है। सबसे आम परिदृश्यों में से एक {@fun/Trade/exchange.IO का उपयोग करना हैexchange.IO} फ़ंक्शन को विनिमयexchange.IO()
कार्य लाइव ट्रेडिंग लॉग रिकॉर्ड में लेनदेन लॉग जानकारी आउटपुट नहीं करता है।exchange.Log()
ऑर्डर की जानकारी दर्ज करने के लिए आउटपुट लॉग को पूरक करने के लिए कार्य का उपयोग किया जा सकता है और ऑर्डर निकालने के संचालन के लिए भी यही सच है।
जबorderType
पैरामीटर हैLOG_TYPE_CANCEL
,price
पैरामीटर वापस लिए गए ऑर्डर का ऑर्डर आईडी है जिसका उपयोग वापस लेने के लॉग को प्रिंट करने के लिए किया जाता है जब ऑर्डर को सीधेexchange.IO()
कार्य।exchange.Log()
फ़ंक्शन {@var/EXCHANGE exchange} विनिमय वस्तु का सदस्य फ़ंक्शन है, जैसा कि वैश्विक फ़ंक्शन {@fun/Log Log} से अलग है।
{@fun/Log Log}, {@var/EXCHANGE exchange}, {@var/LOG_TYPE/LOG_TYPE_BUY LOG_TYPE_BUY}, {@var/LOG_TYPE/LOG_TYPE_SELL LOG_TYPE_SELL}, {@var/LOG_TYPE/LOG_TYPE_CANCEL LOG_TYPE_CANCEL}
..exchange.Encode()
हस्ताक्षर एन्क्रिप्शन की गणना के लिए फ़ंक्शन का प्रयोग किया जाता है.
..exchange.Encode()
फ़ंक्शन गणना की गई हैश मान एन्कोडिंग लौटाता है.
स्ट्रिंग
exchange.Encode ((algo, inputFormat, outputFormat, data) exchange.Encode ((algo, inputFormat, outputFormat, data, keyफॉर्मेट, कुंजी)
पैरामीटरalgo
algo
यह भी समर्थन करता हैः algo
यह विभिन्न हैश एल्गोरिदम के उपयोग का समर्थन करता है, उदाहरण के लिए पैरामीटरalgo
ed25519.seed
गणना।
कुछ
सच
स्ट्रिंग
डेटा प्रारूप को निर्दिष्ट करने के लिए प्रयोग किया जाता हैdata
पैरामीटर।inputFormat
पैरामीटर में से किसी एक पर सेट किया जा सकता हैः hex
एन्कोडेड, base64
एन्कोडेड है, और outputFormat
पैरामीटर निम्नलिखित सेटिंग्स का समर्थन करता हैः hex
एन्कोडेड, base64
एन्कोडेड है, और data
संसाधित किए जाने वाले डेटा हैं।
आंकड़ा
सच
स्ट्रिंग
डेटा प्रारूप को निर्दिष्ट करने के लिए प्रयोग किया जाता हैkey
पैरामीटर।key
पैरामीटर में से किसी एक पर सेट किया जा सकता हैः hex
एन्कोडेड, base64
एन्कोडेड है, और key
पैरामीटर हस्ताक्षर गणना में इस्तेमाल कुंजी निर्दिष्ट करने के लिए प्रयोग किया जाता है, और यह एक सादे पाठ स्ट्रिंग के रूप में इस्तेमाल किया जा सकता है. आप भी उपयोग कर सकते हैं"{{accesskey}}"
, "{{secretkey}}"
संदर्भित करने के लिएaccessKey
औरsecretKey
{@var/EXCHANGE exchange} एक्सचेंज ऑब्जेक्ट में कॉन्फ़िगर किया गया है.
कुंजी
झूठी
स्ट्रिंग
function main() {
var APIKEY = "your Access Key(Bitmex API ID)"
var expires = parseInt(Date.now() / 1000) + 10
var signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
var client = Dial("wss://www.bitmex.com/realtime", 60)
var auth = JSON.stringify({args: [APIKEY, expires, signature], op: "authKeyExpires"})
var pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while (true) {
bitmexData = client.read()
if(bitmexData.table == 'position' && pos != parseInt(bitmexData.data[0].currentQty)){
Log('position change', pos, parseInt(bitmexData.data[0].currentQty), '@')
pos = parseInt(bitmexData.data[0].currentQty)
}
}
}
import time
def main():
APIKEY = "your Access Key(Bitmex API ID)"
expires = int(time.time() + 10)
signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
client = Dial("wss://www.bitmex.com/realtime", 60)
auth = json.dumps({"args": [APIKEY, expires, signature], "op": "authKeyExpires"})
pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while True:
bitmexData = json.loads(client.read())
if "table" in bitmexData and bitmexData["table"] == "position" and len(bitmexData["data"]) != 0 and pos != bitmexData["data"][0]["currentQty"]:
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@")
pos = bitmexData["data"][0]["currentQty"]
void main() {
auto APIKEY = "your Access Key(Bitmex API ID)";
auto expires = Unix() + 10;
auto signature = exchange.Encode("sha256", "string", "hex", format("GET/realtime%d", expires), "hex", "{{secretkey}}");
auto client = Dial("wss://www.bitmex.com/realtime", 60);
json auth = R"({"args": [], "op": "authKeyExpires"})"_json;
auth["args"].push_back(APIKEY);
auth["args"].push_back(expires);
auth["args"].push_back(signature);
auto pos = 0;
client.write(auth.dump());
client.write("{\"op\": \"subscribe\", \"args\": \"position\"}");
while(true) {
auto bitmexData = json::parse(client.read());
if(bitmexData["table"] == "position" && bitmexData["data"][0].find("currentQty") != bitmexData["data"][0].end() && pos != bitmexData["data"][0]["currentQty"]) {
Log("test");
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@");
pos = bitmexData["data"][0]["currentQty"];
}
}
}
BitMEX स्थिति परिवर्तन पुश (wss प्रोटोकॉल) का उदाहरणः
केवल वास्तविक व्यापार का समर्थन करता हैexchange.Encode()
कार्य।"{{accesskey}}"
, "{{secretkey}}"
संदर्भ केवल तभी मान्य होते हैं जबexchange.Encode()
फ़ंक्शन का प्रयोग किया जाता है।
{@var/EXCHANGE exchange}, {@fun/Global/Encode Encode}
मल्टी-थ्रेडेड असिंक्रोनस सपोर्ट फंक्शन सभी सपोर्ट किए गए फंक्शन के ऑपरेशन को असिंक्रोनस समवर्ती निष्पादन में बदल सकते हैं।
..exchange.Go()
फ़ंक्शन तुरंत एक समवर्ती वस्तु देता है, और आप उपयोग कर सकते हैंwait()
समवर्ती अनुरोध का परिणाम प्राप्त करने के लिए उस समवर्ती वस्तु की विधि.
वस्तु
विनिमय.जाओ ((प्रक्रिया) आदान-प्रदान.जाओ ((प्रक्रिया,... args)
..method
पैरामीटर का उपयोग समवर्ती फ़ंक्शन का नाम निर्दिष्ट करने के लिए किया जाता है. ध्यान दें कि पैरामीटर फ़ंक्शन नाम स्ट्रिंग है, फ़ंक्शन संदर्भ नहीं।
विधि
सच
स्ट्रिंग
पैरामीटरसमवर्ती रूप से कार्य निष्पादित करना, एक से अधिक पैरामीटर हो सकते हैंarg
. पैरामीटर का प्रकार और संख्याarg
पर निर्भर करता हैसमवर्ती निष्पादन कार्य.
आर्ग
झूठी
string, number, bool, object, array, function, null, और अन्य सभी प्रकार सिस्टम द्वारा समर्थित
function main(){
// The following four operations are concurrently executed asynchronously by multiple threads and do not take time and return immediately
var a = exchange.Go("GetTicker")
var b = exchange.Go("GetDepth")
var c = exchange.Go("Buy", 1000, 0.1)
var d = exchange.Go("GetRecords", PERIOD_H1)
// Call the wait method to wait for the return of the ticker results asynchronously
var ticker = a.wait()
// Returns the depth, or null if it fails
var depth = b.wait()
// return order number, limited to 1 second timeout, if timeout, returns undefined, the object can continue to call wait if the last wait timeout
var orderId = c.wait(1000)
if(typeof(orderId) == "undefined") {
// Timeout, reacquire
orderId = c.wait()
}
var records = d.wait()
}
def main():
a = exchange.Go("GetTicker")
b = exchange.Go("GetDepth")
c = exchange.Go("Buy", 1000, 0.1)
d = exchange.Go("GetRecords", PERIOD_H1)
ticker, ok = a.wait()
depth, ok = b.wait()
orderId, ok = c.wait(1000)
if ok == False:
orderId, ok = c.wait()
records, ok = d.wait()
void main() {
auto a = exchange.Go("GetTicker");
auto b = exchange.Go("GetDepth");
auto c = exchange.Go("Buy", 1000, 0.1);
auto d = exchange.Go("GetRecords", PERIOD_H1);
Ticker ticker;
Depth depth;
Records records;
TId orderId;
a.wait(ticker);
b.wait(depth);
if(!c.wait(orderId, 300)) {
c.wait(orderId);
}
d.wait(records);
}
Exchange.Go()
फ़ंक्शन उपयोग उदाहरण, निर्धारित करने के लिएundefined
प्रयोग करने के लिएtypeof(xx) === "undefined"
, क्योंकिnull == undefined
जावास्क्रिप्ट में मान्य है.
function main() {
var d = exchange.Go("GetRecords", PERIOD_H1)
// Waiting for K-line results
var records = d.wait()
// Here waits an asynchronous operation that has been waited and finished, it will return null, and log the error message
var ret = d.wait()
}
def main():
d = exchange.Go("GetRecords", PERIOD_H1)
records, ok = d.wait()
ret, ok = d.wait()
void main() {
auto d = exchange.Go("GetRecords", PERIOD_H1);
Records records;
d.wait(records);
Records ret;
d.wait(ret);
}
बुला रहा हैwait()
एक समवर्ती ऑब्जेक्ट पर विधि जो जारी किया गया है एक त्रुटि रिपोर्ट करेगाः
function main() {
while(true) {
var beginTS = new Date().getTime()
var arrRoutine = []
var arrTicker = []
var arrName = []
for(var i = 0; i < exchanges.length; i++) {
arrRoutine.push(exchanges[i].Go("GetTicker"))
arrName.push(exchanges[i].GetName())
}
for(var i = 0; i < arrRoutine.length; i++) {
arrTicker.push(arrRoutine[i].wait())
}
var endTS = new Date().getTime()
var tbl = {
type: "table",
title: "ticker",
cols: ["index", "name", "latest-deal-price"],
rows: []
}
for(var i = 0; i < arrTicker.length; i++) {
tbl.rows.push([i, arrName[i], arrTicker[i].Last])
}
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", endTS - beginTS, "millisecond", "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(500)
}
}
import time
import json
def main():
while True:
beginTS = time.time()
arrRoutine = []
arrTicker = []
arrName = []
for i in range(len(exchanges)):
arrRoutine.append(exchanges[i].Go("GetTicker"))
arrName.append(exchanges[i].GetName())
for i in range(len(exchanges)):
ticker, ok = arrRoutine[i].wait()
arrTicker.append(ticker)
endTS = time.time()
tbl = {
"type": "table",
"title": "ticker",
"cols": ["index", "name", "latest-deal-price"],
"rows": []
}
for i in range(len(arrTicker)):
tbl["rows"].append([i, arrName[i], arrTicker[i]["Last"]])
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", endTS - beginTS, "second", "\n", "`" + json.dumps(tbl) + "`")
Sleep(500)
void main() {
while(true) {
int length = exchanges.size();
auto beginTS = UnixNano() / 1000000;
Ticker arrTicker[length] = {};
string arrName[length] = {};
// Note that to add several exchange objects, several exchanges[n].Go functions have to be executed here, this example is to add four exchange objects, the details can be modified
auto r0 = exchanges[0].Go("GetTicker");
auto r1 = exchanges[1].Go("GetTicker");
auto r2 = exchanges[2].Go("GetTicker");
auto r3 = exchanges[3].Go("GetTicker");
GoObj *arrRoutine[length] = {&r0, &r1, &r2, &r3};
for(int i = 0; i < length; i++) {
arrName[i] = exchanges[i].GetName();
}
for(int i = 0; i < length; i++) {
Ticker ticker;
arrRoutine[i]->wait(ticker);
arrTicker[i] = ticker;
}
auto endTS = UnixNano() / 1000000;
json tbl = R"({
"type": "table",
"title": "ticker",
"cols": ["index", "name", "latest-deal-price"],
"rows": []
})"_json;
for(int i = 0; i < length; i++) {
json arr = R"(["", "", ""])"_json;
arr[0] = format("%d", i);
arr[1] = arrName[i];
arr[2] = format("%f", arrTicker[i].Last);
tbl["rows"].push_back(arr);
}
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", format("%d", endTS - beginTS), "millisecond", "\n", "`" + tbl.dump() + "`");
Sleep(500);
}
}
एकाधिक विनिमय टिकरों तक एक साथ पहुँचः
function main() {
/*
Testing with OKX futures order interface
POST /api/v5/trade/order
*/
var beginTS = new Date().getTime()
var param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
var ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var id1 = ret1.wait()
var id2 = ret2.wait()
var id3 = ret3.wait()
var endTS = new Date().getTime()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Concurrent order placement time consumption:", endTS - beginTS, "millisecond")
}
import time
import json
def main():
beginTS = time.time()
param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
id1, ok1 = ret1.wait()
id2, ok2 = ret2.wait()
id3, ok3 = ret3.wait()
endTS = time.time()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Concurrent order placement time consumption:", endTS - beginTS, "second")
void main() {
auto beginTS = UnixNano() / 1000000;
json param = R"({"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"})"_json;
auto ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
json id1 = R"({})"_json;
json id2 = R"({})"_json;
json id3 = R"({})"_json;
ret1.wait(id1);
ret2.wait(id2);
ret3.wait(id3);
auto endTS = UnixNano() / 1000000;
Log("id1:", id1);
Log("id2:", id2);
Log("id3:", id3);
Log("Concurrent order placement time consumption:", endTS - beginTS, "millisecond");
}
समवर्ती आमंत्रणexchange.IO("api", ...)
कार्य:
यह फ़ंक्शन केवल वास्तविक ट्रेडिंग में चलने पर बहु-थ्रेडेड निष्पादन कार्य बनाता है, बैकटेस्टिंग बहु-थ्रेडेड समवर्ती कार्य निष्पादन का समर्थन नहीं करता है (बैकटेस्टिंग उपलब्ध है, लेकिन फिर भी क्रमिक रूप से निष्पादित किया जाता है) ।
के बादexchange.Go()
फ़ंक्शन एक ऑब्जेक्ट देता है, इसकेwait()
फ़ंक्शन उस ऑब्जेक्ट के माध्यम से कहा जाता है धागे द्वारा लौटाए गए डेटा प्राप्त करने के लिए.wait()
कार्य स्वचालित रूप से जारी किया जाएगा इससे पहले कि धागा डेटा प्राप्त करने के लिए बुलाया जाना चाहिए.wait()
function निर्दिष्ट है, तो थ्रेड स्वचालित रूप से रिलीज़ नहीं होगा, भले ही टाइमआउट हो। थ्रेड का परिणाम स्वचालित रूप से रिलीज़ होने से पहले प्राप्त किया जाना चाहिए (समानकालिक पहुंच के लिए इंटरफ़ेस कॉल की सफलता या विफलता के बावजूद) । सरल शब्दों में, अनुरोधित थ्रेड को प्राप्त किया जाना चाहिएwait()
कार्य चाहे निष्पादन सफल हो या असफल, और धागे के संसाधन द्वारा अनुरोध किया द्वाराexchange.Go()
कार्य को डॉकर द्वारा स्वचालित रूप से जारी किया जाना चाहिए।
दwait()
विधि एक टाइमआउट पैरामीटर का समर्थन करती हैः
एक समय सीमा पैरामीटर के बिना, कि है,wait()
, या एक समय सीमा पैरामीटर 0 के साथ, यानी,wait(0)
.wait()
फ़ंक्शन ब्लॉक करता है और तब तक प्रतीक्षा करता है जब तक समवर्ती थ्रेड समाप्त नहीं हो जाता है, समवर्ती थ्रेडwait(-1)
.wait()
फ़ंक्शन तुरंत रिटर्न करता है, विभिन्न प्रोग्रामिंग भाषाओं के लिए अलग-अलग रिटर्न मानों के साथ, एक उदाहरण कॉल के लिए इस उपखंड को देखें।
विशिष्ट टाइमआउट पैरामीटर सेट करें,wait(300)
, औरwait()
कार्य वापस जाने से पहले अधिकतम 300 मिलीसेकंड का इंतजार करेगा।
यदि अंतिम परिणाम लौटायाwait()
कार्य प्राप्त नहीं होता है, धागा संसाधन स्वचालित रूप से जारी नहीं किया जाएगा, जो अनुरोधित धागे के संचय का कारण होगा और 2000 से अधिक एक त्रुटि की रिपोर्ट करेगाः"too many routine wait, max is 2000"
.
समर्थित कार्यःGetTicker
, GetDepth
, GetTrades
, GetRecords
, GetAccount
, GetOrders
, GetOrder
, CancelOrder
, Buy
, Sell
, GetPositions
, IO
. इन सभी कार्यों को वर्तमान {@var/EXCHANGE exchange} विनिमय वस्तु के आधार पर निष्पादित किया जाता है जब समवर्ती रूप से बुलाया जाता है.
पायथन भाषा और जावास्क्रिप्ट भाषा के बीच अंतर यह है किwait()
पायथन भाषा में समवर्ती ऑब्जेक्ट्स का फ़ंक्शन दो पैरामीटर लौटाता है। पहला पैरामीटर एक असिंक्रोनस एपीआई कॉल द्वारा लौटाया गया परिणाम है, और दूसरा पैरामीटर इंगित करता है कि क्या असिंक्रोनस कॉल पूरा हो गया है।
def main():
d = exchange.Go("GetRecords", PERIOD_D1)
# ok will return True definitely, unless the strategy is stopped
ret, ok = d.wait()
# If the wait times out, or if it waits for an instance that has already ended, ok returns False
ret, ok = d.wait(100)
{@fun/Global/Mail_Go Mail_Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Global/EventLoop EventLoop}
बाजार खाता