ہاتھ سے ہاتھ مل کر آپ کو ایک صنعت جمع کرنے والا بنانے کے لئے سکھاتا ہے

مصنف:چھوٹا سا خواب, تخلیق: 2020-04-16 12:44:03, تازہ کاری: 2023-10-11 19:57:00

img

پروگرام شدہ تجارت ، مقداری تجارت میں ریسرچ کی حکمت عملی ، ڈیزائن کی حکمت عملی ، ریٹرو تجزیہ میں مارکیٹ کے اعداد و شمار کی مدد ضروری ہے۔ مارکیٹ میں موجود تمام اعداد و شمار جمع نہیں کیے جاتے ہیں اور حقیقت پسندانہ بھی نہیں ہیں ، بہرحال ، اعداد و شمار کی مقدار بہت زیادہ ہے۔ ڈیجیٹل کرنسی مارکیٹ کے ل the ، موجد نے کوانٹیمیٹڈ ٹریڈنگ پلیٹ فارم پر محدود تبادلے ، تجارت کے جوڑے کی حمایت کی ہے۔ اگر آپ عارضی طور پر اعداد و شمار کی حمایت نہ کرنے والے کچھ تبادلے ، تجارت کے جوڑے کی حمایت کرنا چاہتے ہیں تو ، آپ اپنی مرضی کے مطابق ڈیٹا ماخذ کا استعمال کرکے ریٹرو کرسکتے ہیں ، لیکن اس کی شرط یہ ہے کہ آپ کے پاس ڈیٹا موجود ہے۔ لہذا ، مارکیٹ جمع کرنے والے پروگرام کی اشد ضرورت ہے ، اور یہ مستقل طور پر محفوظ کیا جاسکتا ہے ، بہتر یہ ہے کہ حقیقی وقت میں بھی دستیاب ہو۔

اس طرح کئی ضروریات کو پورا کیا جا سکتا ہے، جیسے:

  • ایک سے زیادہ روبوٹ کو ڈیٹا کا ذریعہ فراہم کیا جاسکتا ہے ، جس سے ہر روبوٹ کو ایکسچینج انٹرفیس تک رسائی کی تعدد کو کم کیا جاسکتا ہے۔
  • روبوٹ کو شروع کرنے پر کافی تعداد میں K لائن بار ڈیٹا حاصل کیا جاسکتا ہے ، اور روبوٹ کو شروع کرنے پر کافی تعداد میں K لائن بار کی فکر کرنے کی ضرورت نہیں ہے۔
  • چھوٹے کرنسیوں کی مارکیٹ کے اعداد و شمار کو جمع کیا جاسکتا ہے تاکہ ایجاد کاروں کو کوانٹیمیٹڈ ٹریڈنگ پلیٹ فارم ریٹیسٹنگ سسٹم کو اپنی مرضی کے مطابق ڈیٹا ماخذ فراہم کیا جاسکے ، جس سے ریٹیسٹنگ سسٹم ریٹیسٹنگ کی حکمت عملی کا استعمال کیا جاسکے۔
  • انتظار کریں...

اس کے علاوہ، میں نے اس کے بارے میں سوچا تھا کہ میں اس کے بارے میں کیا سوچ رہا ہوں؟ اگر ضرورت ہو تو، کام کریں!

تیار

  • 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)
        

اس کی مکمل حکمت عملی کا پتہ:لنک

ڈیٹا کا استعمال

اس کے علاوہ ، ہم نے اپنے صارفین کے لئے ایک نئی حکمت عملی تیار کی ہے جس میں ڈیٹا کا استعمال کرتے ہوئے حکمت عملی روبوٹ بنائے جائیں گے۔ نوٹ: منتخب کرنے کی ضرورت ہےڈرائنگ لائن کلاس لائبریریاگر آپ کے پاس اس طرح کی کوئی پالیسی نہیں ہے تو ، آپ کو اپنی پالیسی لائبریری میں ایک کاپی کرنے کی ضرورت ہے۔img

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 لائن بار کو جمع کرتا ہے ، اگر موجودہ بار کے حقیقی وقت کے اعداد و شمار کی ضرورت ہو تو ، تھوڑا سا ترمیم کی جاسکتی ہے۔ موجودہ مثال کا کوڈ صرف اس بات کا مظاہرہ کرنے کے لئے ہے کہ ڈیٹا بیس میں ٹیبل میں موجود تمام ڈیٹا ریکارڈوں کو جب آپ ان تک رسائی حاصل کرتے ہیں تو ، ڈیٹا اکٹھا کرنے کا وقت بڑھنے کے ساتھ ہی ، زیادہ سے زیادہ ڈیٹا اکٹھا کیا جاتا ہے ، اور تمام سوالات کی کارکردگی کو کسی حد تک متاثر کرتے ہیں ، یہ صرف موجودہ اعداد و شمار کے مقابلے میں نئے اعداد و شمار کے سوالات کے طور پر ڈیزائن کیا جاسکتا ہے ، اور موجودہ اعداد و شمار میں شامل کیا جاسکتا ہے۔

چل رہا ہے

مینیجرز کو چلائیںimg

آپ کے میزبان کے آلہ پر چل رہا ہےMongoDBڈیٹا بیس سروس./mongod -f mongo.conf img

جمع کرنے والا چل رہا ہے، ایجاد کاروں کو جمع کرنے والے مقداری تجارت کے پلیٹ فارم کی ایک ڈسکwexAppکےBTC_USDTتجارت کی جوڑی: ایڈریس:wexApp img

روبوٹ ڈیٹا بیس کا استعمال کرتے ہوئے:img

روبوٹ بی: ڈیٹا بیس کے اعداد و شمار کا استعمالimg

wexAppصفحہ:img

جیسا کہ آپ اس تصویر میں دیکھ سکتے ہیں ، مختلف آئی ڈی والے روبوٹ ایک ڈیٹا ماخذ کا استعمال کرتے ہوئے کٹر ڈیٹا کا اشتراک کرتے ہیں۔

کسی بھی دورانیے کے K لائن ڈیٹا کو جمع کرنا

اس کے ساتھ ساتھ، ہم نے ایک بہت ہی آسان طریقہ استعمال کیا ہے جس میں ہم K لائن کے اعداد و شمار کو کسی بھی دورانیے پر جمع کرنے کے قابل بناتے ہیں. مثال کے طور پر، میں 3 منٹ کی لائن جمع کرنا چاہتا ہوں، اور تبادلے میں 3 منٹ کی لائن نہیں ہے؟ ٹھیک ہے، یہ آسان ہے.

ہم نے جمع کرنے والے روبوٹ کی تشکیل کو تبدیل کیا ، K لائن سائیکل کو 3 منٹ کے لئے ترتیب دیا ، اور موجدوں نے کوانٹیفیکیشن ٹریڈنگ پلیٹ فارم کو جمع کرنے والے پروگراموں کو خود بخود 3 منٹ کی K لائنوں کا مجموعہ کیا۔img

ہم نے پیرامیٹرز کا استعمال کیا ہے.删除表的名称سیٹ اپ:["records"]1 منٹ کی لائن ڈیٹا بیس کو حذف کریں۔ 3 منٹ کی لائن ڈیٹا کو جمع کرنے کے لئے تیار ہیں۔

شروع کریں收集器程序دوبارہ شروع کریں使用数据的策略机器人

img

img

آپ کو دکھایا گیا K لائن گراف دیکھ سکتے ہیں، BARs کے درمیان وقفہ 3 منٹ ہے، اور ہر BAR 3 منٹ کے دورانیے کے لئے K لائن کالم ہے.

اگلے مرحلے میں ہم اپنی مرضی کے مطابق ڈیٹا کے ذرائع کی ضرورت کو پورا کرنے کی کوشش کریں گے۔ پڑھنے کا شکریہ


متعلقہ

مزید

چوکٹیحیرت انگیز

زلٹیچوٹی

زلٹیچوٹی

خطبہتعریف

ڈسائیڈسیچوٹی

چھوٹا سا خوابشکریہ آپ کی حمایت کے لئے ، میں پائیتھون کا بچہ ہوں ، اور میں نے ایک چھوٹا سا کوڑا پھینک دیا ہے ، اگر آپ کے پاس بہتر عمل درآمد یا تجاویز ہیں تو ، مجھے امید ہے کہ آپ کو بہتر بنایا جائے گا۔