مارکیٹ کی قیمتوں کا تعین کرنے والے اعداد و شمار کی حمایت مارکیٹ کی قیمتوں کا تعین کرنے والی حکمت عملیوں کی تحقیق ، ڈیزائن اور بیک ٹیسٹ کرتے وقت ناگزیر ہے۔ ہر مارکیٹ سے تمام اعداد و شمار اکٹھا کرنا حقیقت پسندانہ نہیں ہے ، بہر حال ، اعداد و شمار کی مقدار بہت زیادہ ہے۔ ڈیجیٹل کرنسی مارکیٹ کے لئے ، ایف ایم زیڈ پلیٹ فارم تبادلے اور تجارتی جوڑوں کے لئے محدود بیک ٹیسٹ ڈیٹا کی حمایت کرتا ہے۔ اگر آپ کچھ تبادلے اور تجارتی جوڑوں کو بیک ٹیسٹ کرنا چاہتے ہیں جو عارضی طور پر ایف ایم زیڈ پلیٹ فارم کے ذریعہ تعاون یافتہ نہیں تھے ، تو آپ بیک ٹیسٹ کے لئے کسٹم ڈیٹا سورس کا استعمال کرسکتے ہیں ، لیکن اس بنیاد پر آپ کے پاس ڈیٹا کی ضرورت ہے۔ لہذا ، مارکیٹ کی قیمتوں کا تعین کرنے والے پروگرام کی فوری ضرورت ہے ، جسے مستقل طور پر برقرار رکھا جاسکتا ہے اور اصل وقت میں بہترین حاصل کیا جاسکتا ہے۔
اس طرح، ہم کئی ضروریات کو حل کر سکتے ہیں، جیسے:
اور بہت سے مزید...
ہم اس کو حاصل کرنے کے لئے پطرون کا استعمال کرنے کا ارادہ رکھتے ہیں، کیوں؟ کیونکہ یہ بہت آسان ہے
پائیٹون کی پیمونگو لائبریری
کیونکہ آپ کو مستقل اسٹوریج کے لئے ڈیٹا بیس کا استعمال کرنے کی ضرورت ہے. ڈیٹا بیس کے انتخاب کا استعمال کرتا ہے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
کمانڈ:
./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
ایک حکمت عملی روبوٹ بنائیں جو ڈیٹا استعمال کرتا ہے.
نوٹ: آپ کو
یہاں ایڈریس ہے: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 ریئل ٹائم ڈیٹا کی ضرورت ہو تو ، اس میں قدرے ترمیم کی جاسکتی ہے۔
موجودہ مثال کا کوڈ صرف مظاہرے کے لئے ہے۔ جب ڈیٹا بیس میں ٹیبل میں ڈیٹا ریکارڈ تک رسائی حاصل کی جاتی ہے تو ، سبھی حاصل ہوجاتے ہیں۔ اس طرح ، جیسے جیسے ڈیٹا اکٹھا کرنے کا وقت بڑھتا جاتا ہے ، زیادہ سے زیادہ ڈیٹا اکٹھا کیا جاتا ہے۔ تمام سوالات کارکردگی کو ایک خاص حد تک متاثر کریں گے ، اور ڈیزائن کیا جاسکتا ہے۔ صرف موجودہ ڈیٹا سے زیادہ تازہ ترین ڈیٹا کو ہی سوال کیا جاتا ہے اور موجودہ ڈیٹا میں شامل کیا جاتا ہے۔
ڈوکر پروگرام چلانے
ڈوکر واقع ہے جہاں آلہ پر، MongoDB ڈیٹا بیس سروس چلائیں
کلکٹر FMZ پلیٹ فارم WexApp تخروپن تبادلے marekt قیمتوں کا تعین کے BTC_USDT ٹریڈنگ جوڑوں جمع کرنے کے لئے چلتا ہے: ویکس ایپ ایڈریس: https://wex.app/trade?currency=BTC_USDT
روبوٹ اے ڈیٹا بیس کے ڈیٹا کا استعمال کرتے ہوئے:
روبوٹ بی ڈیٹا بیس کے ڈیٹا کا استعمال کرتے ہوئے:
WexApp صفحہ:
جیسا کہ آپ اس تصویر میں دیکھ سکتے ہیں، مختلف آئی ڈی والے روبوٹ ایک ڈیٹا ماخذ کا استعمال کرتے ہوئے K لائن ڈیٹا شیئر کرتے ہیں۔
ایف ایم زیڈ پلیٹ فارم کے طاقتور افعال پر انحصار کرتے ہوئے ہم کسی بھی سائیکل پر آسانی سے کے لائن ڈیٹا اکٹھا کرسکتے ہیں۔ مثال کے طور پر، میں 3 منٹ کی K لائن جمع کرنا چاہتا ہوں، اگر ایکسچینج میں 3 منٹ کی K لائن نہیں ہے تو کیا ہوگا؟ اس سے کوئی فرق نہیں پڑتا، یہ آسانی سے حاصل کیا جا سکتا ہے.
ہم جمع کرنے والے روبوٹ کی تشکیل میں ترمیم کرتے ہیں، K لائن کی مدت 3 منٹ پر مقرر کی جاتی ہے، اور FMZ پلیٹ فارم خود بخود جمع کرنے والے پروگرام میں 3 منٹ K لائن کا تجزیہ کرے گا.
ہم حذف کرنے کے لئے پیرامیٹر استعمال کرتے ہیںthe name of the table
، ترتیب: [
شروع کریںcollector program
، اور پھر دوبارہ شروع کریںstrategy robot using the data
.
آپ کو K لائن چارٹ ڈرائنگ دیکھ سکتے ہیں، BARs کے درمیان وقفہ 3 منٹ ہے، اور ہر BAR 3 منٹ کے عرصے کے ساتھ ایک K لائن بار ہے.
اگلے شمارہ میں، ہم اپنی مرضی کے مطابق ڈیٹا ذرائع کی ضروریات کو لاگو کرنے کی کوشش کریں گے.
پڑھنے کے لئے شکریہ!