پروگرام شدہ تجارت ، مقداری تجارت میں ریسرچ کی حکمت عملی ، ڈیزائن کی حکمت عملی ، ریٹرو تجزیہ میں مارکیٹ کے اعداد و شمار کی مدد ضروری ہے۔ مارکیٹ میں موجود تمام اعداد و شمار جمع نہیں کیے جاتے ہیں اور حقیقت پسندانہ بھی نہیں ہیں ، بہرحال ، اعداد و شمار کی مقدار بہت زیادہ ہے۔ ڈیجیٹل کرنسی مارکیٹ کے ل the ، موجد نے کوانٹیمیٹڈ ٹریڈنگ پلیٹ فارم پر محدود تبادلے ، تجارت کے جوڑے کی حمایت کی ہے۔ اگر آپ عارضی طور پر اعداد و شمار کی حمایت نہ کرنے والے کچھ تبادلے ، تجارت کے جوڑے کی حمایت کرنا چاہتے ہیں تو ، آپ اپنی مرضی کے مطابق ڈیٹا ماخذ کا استعمال کرکے ریٹرو کرسکتے ہیں ، لیکن اس کی شرط یہ ہے کہ آپ کے پاس ڈیٹا موجود ہے۔ لہذا ، مارکیٹ جمع کرنے والے پروگرام کی اشد ضرورت ہے ، اور یہ مستقل طور پر محفوظ کیا جاسکتا ہے ، بہتر یہ ہے کہ حقیقی وقت میں بھی دستیاب ہو۔
اس طرح کئی ضروریات کو پورا کیا جا سکتا ہے، جیسے:
اس کے علاوہ، میں نے اس کے بارے میں سوچا تھا کہ میں اس کے بارے میں کیا سوچ رہا ہوں؟ اگر ضرورت ہو تو، کام کریں!
python کے لئے پیمونگو لائبریری
ڈیٹا بیس کا استعمال کرتے ہوئے، مستقل طور پر محفوظ کرنے کے لئے؛ ڈیٹا کا انتخاب استعمالMongoDB
اس ڈیٹا بیس کے لئے ڈرائیور کی ضرورت ہوتی ہے، کیونکہ یہ ڈیٹا بیس کے لئے ایک ڈرائیور کی ضرورت ہوتی ہے.
پیتھون پر نصبpymongo
یہ ٹھیک ہے۔
MongoDB انسٹال کریں
مثال کے طور پر: میک پر منگو ڈی بی انسٹال کریں ، اور یقینا WIN سسٹم میں بھی منگو ڈی بی انسٹال کریں ، آن لائن بہت سارے سبق موجود ہیں جو ایپل کے میک سسٹم پر انسٹال کرنے کے لئے ہیں:
ڈاؤن لوڈ کریں ڈاؤن لوڈ کا لنک:https://www.mongodb.com/download-center?jmp=nav#community
ڈس کمپریشن
ڈاؤن لوڈ کرنے کے بعد ڈائرکٹری میں ڈس کمپریس کریں:/usr/local
。
ماحول کی متغیرات کی تشکیل
ٹرمینل ان پٹ:open -e .bash_profile
اس کے بعد ، آپ اس فائل کو کھولتے ہیں اور لکھتے ہیں:export PATH=${PATH}:/usr/local/MongoDB/bin
محفوظ کرنے کے بعد، ٹرمینل استعمالsource .bash_profile
اس تبدیلی کو نافذ کرنے کے لیے۔
دستی طور پر ڈیٹا بیس فائل ڈائریکٹری اور لاگ ڈائریکٹری کو ترتیب دیں
ڈائرکٹری بنائیں/usr/local/data/db
موازنہ کرنے والے فولڈر میں۔
ڈائرکٹری بنائیں/usr/local/data/logs
موازنہ کرنے والے فولڈر میں۔
پروفائل میں ترمیم کریںmongo.conf
:
#bind_ip_all = true # 任何机器可以连接
bind_ip = 127.0.0.1 # 本机可以访问
port = 27017 # 实例运行在27017端口(默认)
dbpath = /usr/local/data/db # 数据文件夹存放地址(db要预先创建)
logpath = /usr/local/data/logs/mongodb.log # 日志文件地址
logappend = false # 启动时 添加还是重写日志文件
fork = false # 是否后台运行
auth = false # 开启校验用户
MongoDB سروسز چلائیں
آرڈر:
./mongod -f mongo.conf
سروس بند
use admin;
db.shutdownServer();
مجموعہ کار کو ایجاد کاروں کی طرف سے مقداری تجارتی پلیٹ فارم پر پائیتھون روبوٹ کی حکمت عملی کے طور پر چلایا جاتا ہے۔ خود پائیتھون کی محدود سطح کی وجہ سے ، صرف ایک سادہ مثال کا نفاذ کیا گیا ہے جو اس مضمون کے خیالات کی نمائش کے لئے استعمال ہوتا ہے۔
جمع کرنے والے کی پالیسی کا کوڈ:
import pymongo
import json
def main():
Log("测试数据收集")
# 连接数据库服务
myDBClient = pymongo.MongoClient("mongodb://localhost:27017") # mongodb://127.0.0.1:27017
# 创建数据库
huobi_DB = myDBClient["huobi"]
# 打印目前数据库表
collist = huobi_DB.list_collection_names()
Log("collist:", collist)
# 检测是否删除表
arrDropNames = json.loads(dropNames)
if isinstance(arrDropNames, list):
for i in range(len(arrDropNames)):
dropName = arrDropNames[i]
if isinstance(dropName, str):
if not dropName in collist:
continue
tab = huobi_DB[dropName]
Log("dropName:", dropName, "删除:", dropName)
ret = tab.drop()
collist = huobi_DB.list_collection_names()
if dropName in collist:
Log(dropName, "删除失败")
else :
Log(dropName, "删除成功")
# 创建records表
huobi_DB_Records = huobi_DB["records"]
# 请求数据
preBarTime = 0
index = 1
while True:
r = _C(exchange.GetRecords)
if len(r) < 2:
Sleep(1000)
continue
if preBarTime == 0:
# 首次写入所有BAR数据
for i in range(len(r) - 1):
# 逐根写入
bar = r[i]
huobi_DB_Records.insert_one({"index": index, "High": bar["High"], "Low": bar["Low"], "Open": bar["Open"], "Close": bar["Close"], "Time": bar["Time"], "Volume": bar["Volume"]})
index += 1
preBarTime = r[-1]["Time"]
elif preBarTime != r[-1]["Time"]:
bar = r[-2]
huobi_DB_Records.insert_one({"index": index, "High": bar["High"], "Low": bar["Low"], "Open": bar["Open"], "Close": bar["Close"], "Time": bar["Time"], "Volume": bar["Volume"]})
index += 1
preBarTime = r[-1]["Time"]
LogStatus(_D(), "preBarTime:", preBarTime, "_D(preBarTime):", _D(preBarTime/1000), "index:", index)
Sleep(10000)
اس کی مکمل حکمت عملی کا پتہ:لنک
اس کے علاوہ ، ہم نے اپنے صارفین کے لئے ایک نئی حکمت عملی تیار کی ہے جس میں ڈیٹا کا استعمال کرتے ہوئے حکمت عملی روبوٹ بنائے جائیں گے۔ نوٹ: منتخب کرنے کی ضرورت ہےڈرائنگ لائن کلاس لائبریریاگر آپ کے پاس اس طرح کی کوئی پالیسی نہیں ہے تو ، آپ کو اپنی پالیسی لائبریری میں ایک کاپی کرنے کی ضرورت ہے۔
import pymongo
import json
def main():
Log("测试使用数据库数据")
# 连接数据库服务
myDBClient = pymongo.MongoClient("mongodb://localhost:27017") # mongodb://127.0.0.1:27017
# 创建数据库
huobi_DB = myDBClient["huobi"]
# 打印目前数据库表
collist = huobi_DB.list_collection_names()
Log("collist:", collist)
# 查询数据打印
huobi_DB_Records = huobi_DB["records"]
while True:
arrRecords = []
for x in huobi_DB_Records.find():
bar = {
"High": x["High"],
"Low": x["Low"],
"Close": x["Close"],
"Open": x["Open"],
"Time": x["Time"],
"Volume": x["Volume"]
}
arrRecords.append(bar)
# 使用画线类库,把取到的K线数据画出来
ext.PlotRecords(arrRecords, "K")
LogStatus(_D(), "records length:", len(arrRecords))
Sleep(10000)
جیسا کہ آپ دیکھ سکتے ہیں کہ اعداد و شمار کا استعمال کرنے والی حکمت عملی روبوٹ کوڈ میں کسی بھی تبادلے کے انٹرفیس تک رسائی حاصل نہیں کرتی ہے ، ڈیٹا بیس تک رسائی حاصل کرکے ڈیٹا حاصل کرتی ہے ، مارکیٹنگ جمع کرنے والے پروگراموں میں موجودہ بار کا ڈیٹا ریکارڈ نہیں ہوتا ہے ، جو ریاست کے مکمل ہونے والے K لائن بار کو جمع کرتا ہے ، اگر موجودہ بار کے حقیقی وقت کے اعداد و شمار کی ضرورت ہو تو ، تھوڑا سا ترمیم کی جاسکتی ہے۔ موجودہ مثال کا کوڈ صرف اس بات کا مظاہرہ کرنے کے لئے ہے کہ ڈیٹا بیس میں ٹیبل میں موجود تمام ڈیٹا ریکارڈوں کو جب آپ ان تک رسائی حاصل کرتے ہیں تو ، ڈیٹا اکٹھا کرنے کا وقت بڑھنے کے ساتھ ہی ، زیادہ سے زیادہ ڈیٹا اکٹھا کیا جاتا ہے ، اور تمام سوالات کی کارکردگی کو کسی حد تک متاثر کرتے ہیں ، یہ صرف موجودہ اعداد و شمار کے مقابلے میں نئے اعداد و شمار کے سوالات کے طور پر ڈیزائن کیا جاسکتا ہے ، اور موجودہ اعداد و شمار میں شامل کیا جاسکتا ہے۔
مینیجرز کو چلائیں
آپ کے میزبان کے آلہ پر چل رہا ہےMongoDB
ڈیٹا بیس سروس./mongod -f mongo.conf
جمع کرنے والا چل رہا ہے، ایجاد کاروں کو جمع کرنے والے مقداری تجارت کے پلیٹ فارم کی ایک ڈسکwexApp
کےBTC_USDT
تجارت کی جوڑی:
ایڈریس:wexApp
روبوٹ ڈیٹا بیس کا استعمال کرتے ہوئے:
روبوٹ بی: ڈیٹا بیس کے اعداد و شمار کا استعمال
wexApp
صفحہ:
جیسا کہ آپ اس تصویر میں دیکھ سکتے ہیں ، مختلف آئی ڈی والے روبوٹ ایک ڈیٹا ماخذ کا استعمال کرتے ہوئے کٹر ڈیٹا کا اشتراک کرتے ہیں۔
اس کے ساتھ ساتھ، ہم نے ایک بہت ہی آسان طریقہ استعمال کیا ہے جس میں ہم K لائن کے اعداد و شمار کو کسی بھی دورانیے پر جمع کرنے کے قابل بناتے ہیں. مثال کے طور پر، میں 3 منٹ کی لائن جمع کرنا چاہتا ہوں، اور تبادلے میں 3 منٹ کی لائن نہیں ہے؟ ٹھیک ہے، یہ آسان ہے.
ہم نے جمع کرنے والے روبوٹ کی تشکیل کو تبدیل کیا ، K لائن سائیکل کو 3 منٹ کے لئے ترتیب دیا ، اور موجدوں نے کوانٹیفیکیشن ٹریڈنگ پلیٹ فارم کو جمع کرنے والے پروگراموں کو خود بخود 3 منٹ کی K لائنوں کا مجموعہ کیا۔
ہم نے پیرامیٹرز کا استعمال کیا ہے.删除表的名称
سیٹ اپ:["records"]
1 منٹ کی لائن ڈیٹا بیس کو حذف کریں۔ 3 منٹ کی لائن ڈیٹا کو جمع کرنے کے لئے تیار ہیں۔
شروع کریں收集器程序
دوبارہ شروع کریں使用数据的策略机器人
。
آپ کو دکھایا گیا K لائن گراف دیکھ سکتے ہیں، BARs کے درمیان وقفہ 3 منٹ ہے، اور ہر BAR 3 منٹ کے دورانیے کے لئے K لائن کالم ہے.
اگلے مرحلے میں ہم اپنی مرضی کے مطابق ڈیٹا کے ذرائع کی ضرورت کو پورا کرنے کی کوشش کریں گے۔ پڑھنے کا شکریہ
چوکٹیحیرت انگیز
زلٹیچوٹی
زلٹیچوٹی
خطبہتعریف
ڈسائیڈسیچوٹی
ایجاد کاروں کی مقدار - خوابشکریہ آپ کی حمایت کے لئے ، میں پائیتھون کا بچہ ہوں ، اور میں نے ایک چھوٹا سا کوڑا پھینک دیا ہے ، اگر آپ کے پاس بہتر عمل درآمد یا تجاویز ہیں تو ، مجھے امید ہے کہ آپ کو بہتر بنایا جائے گا۔