آپ کو ایک مارکیٹ کی قیمتوں کا تعین جمع کرنے کے لئے لاگو کرنے کے لئے سکھانے کے

مصنف:نیکی, تخلیق: 2020-05-30 10:03:39, تازہ کاری: 2023-11-02 19:52:02

img

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

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

  • متعدد روبوٹس کو ڈیٹا کے ذرائع فراہم کیے جاسکتے ہیں ، جو تبادلہ انٹرفیس تک ہر روبوٹ کی رسائی کی تعدد کو آسان بنا سکتے ہیں۔
  • جب روبوٹ شروع ہوتا ہے تو آپ کافی تعداد میں K-line BARs کے ساتھ K-line ڈیٹا حاصل کرسکتے ہیں، اور آپ کو روبوٹ شروع ہونے پر K-line BARs کی ناکافی تعداد کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔
  • یہ نایاب کرنسیوں کے مارکیٹ کے اعداد و شمار جمع کرسکتا ہے اور ایف ایم زیڈ پلیٹ فارم بیک ٹسٹ سسٹم کے لئے ایک کسٹم ڈیٹا ماخذ فراہم کرسکتا ہے۔

اور بہت سے مزید...

ہم اس کو حاصل کرنے کے لئے پطرون کا استعمال کرنے کا ارادہ رکھتے ہیں، کیوں؟ کیونکہ یہ بہت آسان ہے

تیار

  • پائیٹون کی پیمونگو لائبریری کیونکہ آپ کو مستقل اسٹوریج کے لئے ڈیٹا بیس کا استعمال کرنے کی ضرورت ہے. ڈیٹا بیس کے انتخاب کا استعمال کرتا ہےMongoDBاور پیتھون زبان کا استعمال مجموعہ پروگرام لکھنے کے لئے کیا جاتا ہے، تو اس ڈیٹا بیس کے ڈرائیور لائبریری کی ضرورت ہے. صرف انسٹال کریںpymongoپیتھون پر.

  • ہوسٹنگ آلہ پر MongoDB انسٹال کریں مثال کے طور پر: میک او ایس مونگو ڈی بی انسٹال کرتا ہے ، اسی طرح ونڈوز سسٹم مونگو ڈی بی انسٹال کرتا ہے۔ آن لائن بہت سارے سبق موجود ہیں۔ میک او ایس سسٹم کی تنصیب کو مثال کے طور پر لیں:

  • ڈاؤن لوڈ ڈاؤن لوڈ لنک:https://www.mongodb.com/download-center?jmp=nav#community

  • کھولیں ڈاؤن لوڈ کرنے کے بعد، ڈائرکٹری میں کھولیں:/usr/local

  • ماحولیاتی متغیرات کی تشکیل کریں ٹرمینل ان پٹ:open -e .bash_profile، فائل کھولنے کے بعد لکھیں:exportPATH=${PATH}:/usr/local/MongoDB/binمحفوظ کرنے کے بعد، ٹرمینل میں، استعمال کرتا ہےsource .bash_profileتبدیلیوں کو اثر انداز کرنے کے لئے.

  • دستی طور پر ڈیٹا بیس فائل ڈائرکٹری اور لاگ ڈائرکٹری تشکیل دیں ڈائرکٹری میں متعلقہ فولڈر تخلیق کریں/usr/local/data/db. ڈائرکٹری میں متعلقہ فولڈر تخلیق کریں/usr/local/data/logs.

ترتیب فائل میں ترمیم کریںmongo.conf:

#bind_ip_all = true # Any computer can connect
bind_ip = 127.0.0.1 # Local computer can access
port = 27017 # The instance runs on port 27017 (default)
dbpath = /usr/local/data/db # data folder storage address (db need to be created in advance)
logpath = /usr/local/data/logs/mongodb.log # log file address
logappend = false # whether to add or rewrite the log file at startup
fork = false # Whether to run in the background
auth = false # Enable user verification
  • MongoDB سروس چلائیں

کمانڈ:

./mongod -f mongo.conf
  • منگو ڈی بی سروس بند کریں
use admin;
db.shutdownServer();

کلیکٹر پروگرام کو نافذ کریں

جمع کرنے والا ایف ایم زیڈ پلیٹ فارم پر پائیتھون روبوٹ حکمت عملی کے طور پر کام کرتا ہے۔ میں نے اس مضمون کے خیالات کو ظاہر کرنے کے لئے ابھی ایک سادہ مثال نافذ کی ہے۔

کلکٹر پروگرام کا کوڈ:

import pymongo
import json

def main():
    Log("Test data collection")
    
    # Connect to the database service
    myDBClient = pymongo.MongoClient("mongodb://localhost:27017")   # mongodb://127.0.0.1:27017
    # Create a database
    huobi_DB = myDBClient["huobi"]
    
    # Print the current database table
    collist = huobi_DB.list_collection_names()
    Log("collist:", collist)
    
    # Check if the table is deleted
    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, "delete:", dropName)
                ret = tab.drop()
                collist = huobi_DB.list_collection_names()
                if dropName in collist:
                    Log(dropName, "failed to delete")
                else :
                    Log(dropName, "successfully deleted")
    
    # Create the records table
    huobi_DB_Records = huobi_DB["records"]
    
    # Request data
    preBarTime = 0
    index = 1
    while True:
        r = _C(exchange.GetRecords)
        if len(r) < 2:
            Sleep(1000)
            continue
        if preBarTime == 0:
            # Write all BAR data for the first time
            for i in range(len(r) - 1):
                # Write one by one
                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)

مکمل حکمت عملی کا پتہ:https://www.fmz.com/strategy/199120

استعمال کے اعداد و شمار

ایک حکمت عملی روبوٹ بنائیں جو ڈیٹا استعمال کرتا ہے. نوٹ: آپ کو python پلاٹ لائن ٹیمپلیٹ چیک کرنے کی ضرورت ہے، اگر آپ کو یہ نہیں ہے، آپ کو آپ کی حکمت عملی لائبریری میں حکمت عملی مربع سے ایک کاپی کر سکتے ہیں.

img

یہاں ایڈریس ہے:https://www.fmz.com/strategy/39066

import pymongo
import json

def main():
    Log("Test using database data")
    
    # Connect to the database service
    myDBClient = pymongo.MongoClient("mongodb://localhost:27017")   # mongodb://127.0.0.1:27017
    # Create a database
    huobi_DB = myDBClient["huobi"]
    
    # Print the current database table
    collist = huobi_DB.list_collection_names()
    Log("collist:", collist)
    
    # Query data printing
    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)
        
        # Use the line drawing library to draw the obtained K-line data
        ext.PlotRecords(arrRecords, "K")
        LogStatus(_D(), "records length:", len(arrRecords))
        Sleep(10000)

یہ دیکھا جاسکتا ہے کہ اعداد و شمار کا استعمال کرنے والا حکمت عملی روبوٹ کوڈ کسی تبادلے کے انٹرفیس تک رسائی حاصل نہیں کرتا ہے۔ ڈیٹا بیس تک رسائی حاصل کرکے ڈیٹا حاصل کیا جاتا ہے۔ مارکیٹ کلکٹر پروگرام موجودہ BAR ڈیٹا کو ریکارڈ نہیں کرتا ہے۔ یہ مکمل حالت میں K- لائن BAR جمع کرتا ہے۔ اگر موجودہ BAR ریئل ٹائم ڈیٹا کی ضرورت ہو تو ، اس میں قدرے ترمیم کی جاسکتی ہے۔

موجودہ مثال کا کوڈ صرف مظاہرے کے لئے ہے۔ جب ڈیٹا بیس میں ٹیبل میں ڈیٹا ریکارڈ تک رسائی حاصل کی جاتی ہے تو ، سبھی حاصل ہوجاتے ہیں۔ اس طرح ، جیسے جیسے ڈیٹا اکٹھا کرنے کا وقت بڑھتا جاتا ہے ، زیادہ سے زیادہ ڈیٹا اکٹھا کیا جاتا ہے۔ تمام سوالات کارکردگی کو ایک خاص حد تک متاثر کریں گے ، اور ڈیزائن کیا جاسکتا ہے۔ صرف موجودہ ڈیٹا سے زیادہ تازہ ترین ڈیٹا کو ہی سوال کیا جاتا ہے اور موجودہ ڈیٹا میں شامل کیا جاتا ہے۔

بھاگ جاؤ

ڈوکر پروگرام چلانے

img

ڈوکر واقع ہے جہاں آلہ پر، MongoDB ڈیٹا بیس سروس چلائیں

img

کلکٹر FMZ پلیٹ فارم WexApp تخروپن تبادلے marekt قیمتوں کا تعین کے BTC_USDT ٹریڈنگ جوڑوں جمع کرنے کے لئے چلتا ہے: ویکس ایپ ایڈریس: https://wex.app/trade?currency=BTC_USDT

img

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

img

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

img

WexApp صفحہ:

img

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

کسی بھی مدت کے K لائن کے اعداد و شمار جمع کریں

ایف ایم زیڈ پلیٹ فارم کے طاقتور افعال پر انحصار کرتے ہوئے ہم کسی بھی سائیکل پر آسانی سے کے لائن ڈیٹا اکٹھا کرسکتے ہیں۔ مثال کے طور پر، میں 3 منٹ کی K لائن جمع کرنا چاہتا ہوں، اگر ایکسچینج میں 3 منٹ کی K لائن نہیں ہے تو کیا ہوگا؟ اس سے کوئی فرق نہیں پڑتا، یہ آسانی سے حاصل کیا جا سکتا ہے.

ہم جمع کرنے والے روبوٹ کی تشکیل میں ترمیم کرتے ہیں، K لائن کی مدت 3 منٹ پر مقرر کی جاتی ہے، اور FMZ پلیٹ فارم خود بخود جمع کرنے والے پروگرام میں 3 منٹ K لائن کا تجزیہ کرے گا.

img

ہم حذف کرنے کے لئے پیرامیٹر استعمال کرتے ہیںthe name of the table، ترتیب: [ ریکارڈز] پہلے جمع کردہ 1 منٹ کے K لائن ڈیٹا ٹیبل کو حذف کریں۔ 3 منٹ کے K لائن ڈیٹا کو جمع کرنے کے لئے تیار ہوں۔

شروع کریںcollector program، اور پھر دوبارہ شروع کریںstrategy robot using the data.

img

img

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

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

پڑھنے کے لئے شکریہ!


متعلقہ

مزید