خریدنے کا فنکشن استعمال کرتے ہوئے/اس سے پہلے کچھ API ہیں جن سے آپ کو واقف ہونا ضروری ہے۔
[
ORDER_STATE_PENDING :未完成
ORDER_STATE_CLOSED :已关闭
ORDER_STATE_CANCELED :已取消
]
{
Id :交易单唯一标识
Price :下单价格
Amount :下单数量
DealAmount :成交数量
Status :订单状态, 参考常量里的订单状态
Type :订单类型, 参考常量里的订单类型
}
API دستاویزات
Buy(Price, Amount) 下买单, Price为买单价格,Amount为数量, 返回一个订单ID
可以跟多余的参数做为附加消息显示到日志, 如exchange.Buy(1000,0.1, "OK", 123)
支持现货(火币/BitVC/OKCoin/OKCoin国际/OKCoin期货/BTCChina/BitYes)市价单, 市价单价格指定为-1
exchange.Buy(1000), 指买市价1000元的币, BTCChina例外exchange.Buy(0.3)指市价买0.3个币
آئیے دیکھتے ہیں کہ قیمتوں کا تعین کرنے کے لئے کس طرح آسان ہے، لیکن قیمتوں کا تعین کرنے کے لئے بہت ساری تفصیلات ہیں، اور ہم سب سے پہلے اس کی وضاحت کریں گے، کیونکہ ہم بعد میں دیکھیں گے.سیکشن 3.1اس کے علاوہ ، آپ کو ایک بہت ہی تفصیلی پروسیسنگ کا عمل سیکھنے کے ل.
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_STATE_CLOSED:",
ORDER_STATE_CLOSED, ", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED); // 这些都是订单状态的宏,打印这些值认识下,在本段代码不起任何作用,仅仅观察下这些 “状态” 的值。
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Buy(ticker.Sell + 0.1, 0.1); // ticker.Sell 即 上一章中的 depth.Asks[0].Price 。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
}
اس کے نتیجے میں:آپ دیکھ سکتے ہیں کہ پرنٹ شدہ آرڈر کی حیثیت کی قیمت 1 ہے یعنی: ORDER_STATE_CLOSED ؛ موجودہ آرڈر کی حیثیت مکمل ہوچکی ہے ، dealAmount کو 0.1 دیکھ کر ، اس آرڈر کی تصدیق بھی کی جاسکتی ہے کہ یہ ٹرانزیکشن مکمل ہوچکا ہے۔ لاگت dealAmount ہے۔ شاید کسی ساتھی نے غور سے دیکھا ہو کہ پرنٹ شدہ آرڈر API دستاویزات سے ایک AvgPrice ((ٹرانزیکشن اوسط قیمت) زیادہ ہے ، کیونکہ یہ خصوصیت بعد میں توسیع کی گئی ہے۔
API دستاویزات
Sell(Price, Amount) 跟Buy函数一样的调用方法和场景
مندرجہ بالا BUY () فنکشن ہم نے استعمال کیا ہے کہ ٹیسٹنگ سسٹم کی طرف سے ٹیسٹ کیا گیا ہے، یہاں ہم نے ایک ڈسک کے ساتھ ٹیسٹ کیا ہے کہ آیا کوئی آرڈر غیر منظور شدہ (یا جزوی طور پر منظور شدہ) ہے.
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, "
, ORDER_STATE_CLOSED:", ORDER_STATE_CLOSED, ", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED);
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Sell(ticker.Sell + 0.3, 2); // 这里故意把卖出价格加了 0.3 ,并且使用的ticker.Sell,增加了未成交的几率。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
}
موجد نے کوانٹیفیکیشن کیا اور ڈسک کو چلانے کے نتائج یہ ہیں:آپ دیکھ سکتے ہیں کہ پرنٹ شدہ آرڈر کی حیثیت کی قیمت 0 ہے یعنی مکمل نہیں ہوئی ہے۔ DealAmount کی قیمت 0 ہے اور فروخت ہونے والے 2 سکے بھی منجمد ہیں کیونکہ آرڈر زیر التوا ہے۔
آپ کے پاس ابھی تک انتظار کرنے والی فہرست ہے؟ یہاں CancelOrder (ID) کا استعمال کیا جاتا ہے، جس کا استعمال ہم ID کے مخصوص احکامات کو منسوخ کرنے کے لئے کرتے ہیں۔
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_STATE_CLOSED:", ORDER_STATE_CLOSED,
", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED);
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Sell(ticker.Sell + 50, 2); // ticker.Sell 即 上一章中的 depth.Asks[0].Price 。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
Sleep(60 * 1000);
exchange.CancelOrder(ID); // 取消 这个ID 的订单
order = exchange.GetOrder(ID); // 读取这个ID的订单信息。
Log("order:", order);
}
رن کا نتیجہ: ID نمبر 634795459 کے ساتھ آرڈر دکھاتا ہے۔ آخری پرنٹ کردہ پیغام میں Status 2 ہے یعنی: ORDER_STATE_CANCELED: منسوخ
GetOrder ((ID) اور GetOrders ((() افعال بہت ملتے جلتے ہیں ، فرق یہ ہے کہ سابقہ مخصوص ID کے آرڈر کی معلومات حاصل کرتا ہے ، جبکہ مؤخر الذکر تمام آرڈر کی معلومات حاصل کرتا ہے۔未完成
آرڈر ((GetOrders)) کے اعداد و شمار کی ساخت کو آبجیکٹ صفوں کے طور پر واپس کیا جاتا ہے ، یعنی ہر عنصر کے لئے آرڈر کی ساخت کی صفیں) ؛
بیجاسوکیا ہوگا اگر میں بٹ کوائنز نہیں خریدتا اور دوسرے سکے خریدتا ہوں؟
بیجاسومارک!
پینگلیہینگکیا آپ مجھ سے پوچھ سکتے ہیں؟ exchange.Buy ((ticker، 0.1) ایک خریدنے کے لئے اور exchange.Buy ((depth, 0.1) ایک خریدنے کے لئے کیا فرق ہے؟ کرنسی کی مارکیٹ کی اصل قیمت کس طرح حاصل کی جاتی ہے؟
فینگ بیpython ورژن https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png
ایجاد کاروں کی مقدار - خواباس پوسٹ کا چوتھا سوال دیکھیں: https://www.botvs.com/bbs-topic/1427 آپ کو اپنی مرضی کے مطابق کنٹرول کی ترتیبات کا استعمال کرتے ہوئے حقیقی وقت میں استعمال کر سکتے ہیں.
ایجاد کاروں کی مقدار - خوابGetTicker کو حقیقی وقت میں ٹریڈنگ کے اعداد و شمار ملتے ہیں، GetDepth کو گہرائی میں معلومات ملتی ہیں، خریدنے اور فروخت کرنے کے لئے ایک ہی چیز ہے۔
ایجاد کاروں کی مقدار - خوابشیئر کرنے کا شکریہ!