xchangeList ((()
GetExchangeList()
সমর্থিত এক্সচেঞ্জের তালিকা এবং প্রয়োজনীয় কনফিগারেশন তথ্য প্রদান করে।
প্যারামিটার কোনটিই
রিটার্ন মান
{
"code": 0,
"data": {
"result": {
"exchanges": [{
"website": "https://www.huobi.pro/",
"name": "Huobi",
"priority": 1,
"meta": "[{"desc": "Access Key", "required": true, "type": "string", "name": "AccessKey", "label": "Access Key"}, {"encrypt": true, "name": "SecretKey", "required": true, "label": "Secret Key", "type": "password", "desc": "Secret Key"}]",
"eid": "Huobi",
"logo": "huobi.png",
"id": 1
}, {
"website": "https://www.kex.com/",
"name": "KEX",
"priority": -99,
"meta": "[{"desc": "Access Key", "required": true, "type": "string", "name": "AccessKey", "label": "Access Key"}, {"encrypt": true, "name": "SecretKey", "required": true, "label": "Secret Key", "type": "password", "desc": "Secret Key"}, {"encrypt": true, "required": true, "type": "password", "name": "Password", "label": "Trading Password"}]",
"eid": "KEX",
"logo": "",
"id": 43
},
...
]
},
"error": null
}
}
DeleteNode(Nid)
ডকার নোড মুছে ফেলবে (ID
হয়Nid
) এর সাথে মিলে যায়API KEY
FMZ Quant ট্রেডিং প্ল্যাটফর্মের অ্যাকাউন্টের অনুরোধে।
প্যারামিটারNid
পূর্ণসংখ্যা প্রকারের, যথা ডকারID
.
রিটার্ন ভ্যালু
{
"code":0,
"data":{
"result":true,
"error":null
}
}
DeleteRobot(RobotId, DeleteLogs)
নির্দিষ্ট আইডি (রোবট) দিয়ে রোবট মুছে ফেলবেID
: RobotId
) এর সাথে মিলে যায়API KEY
FMZ Quant অ্যাকাউন্টের অধীনে অনুরোধে।
প্যারামিটারRobotId
পূর্ণসংখ্যা প্রকারের, যথা রোবটID
মুছে ফেলা হবে।DeleteLogs
বুল টাইপ; সেটDeleteLogs
লগ মুছে ফেলতে হবে কিনা তা সিদ্ধান্ত নিতে;true
লগ মুছে ফেলা নির্দেশ করে।
রিটার্ন ভ্যালু
// Return value after successful deletion
{
"code": 0,
"data": {
"result": 0,
"error": null
}
}
GetStrategyList()
কৌশলগত তথ্য সংগ্রহ করে।API KEY
FMZ Quant ট্রেডিং প্ল্যাটফর্মের অ্যাকাউন্টের অনুরোধে।
প্যারামিটার কোনটিই
রিটার্ন মান
{
"code": 0,
"data": {
"result": {
"strategies": [{
"category": 0,
"username": "yifidslei",
"is_owner": true,
"name": "fmz simulation market test strategy",
"language": 0,
"hasToken": false,
"args": "[]",
"is_buy": false,
"public": 0,
"last_modified": "2018-01-18 12:36:03",
"date": "2018-01-17 09:19:32",
"forked": 0,
"id": 63372
}, {
"category": 20,
"username": "bifndslez",
"is_owner": true,
"name": "Line drawing library",
"language": 0,
"hasToken": false,
"args": "[]",
"is_buy": false,
"public": 0,
"last_modified": "2017-05-08 09:44:18",
"date": "2017-04-19 10:38:14",
"forked": 0,
"id": 39677
},
...
],
"all": 20
},
"error": null
}
}
NewRobot(Settings)
প্যারামিটার সেটিংস অনুযায়ী একটি নতুন বট তৈরি করে, যাAPI KEY
FMZ Quant অ্যাকাউন্টের অনুরোধে।
প্যারামিটারSettings
এরJSON
বস্তুর ধরন।Settings
একটিJSON
বট দ্বারা কনফিগার করা বস্তু.
দ্যSettings
বর্ণনাটি নিম্নরূপ ব্যাখ্যা করা হয়েছেঃ
Settings = {
"name": "hedge test",
/*
Strategy parameters; the order does not have to be in correspondence with the parameter order, but the name must be the same as the parameter name
Note: the second element in the parameter array ["MAType", 0, 75882] is an array including three elements, in which the first one "MAType" is the parameter on the pattern referred by the bot-binding strategy, and the second one "0" is the specific value set by the parameter "MAType", and the third one "75882" is the pattern ID containing the parameter "MAType"
*/
"args": [["Interval", 500], ["MAType", 0, 75882]],
// Strategy ID, which can be obtained by "GetStrategyList" method
"strategy": 25189,
// K-line period parameter; "60" indicates 60 seconds
"period": 60,
// it can be specified to run on which docker; no writing of the attribute will lead to automatic assignment
"node" : 52924,
// custom field
"appid": "member2",
// Specify a bot group
"group": 1122,
"exchanges": [
// ZB; "pid" can be obtained by "GetPlatformList" method
{"pid": 15445, "pair": "ETH_BTC"},
// OKEX
{"pid": 13802, "pair": "BCH_BTC"},
// In addition to the exchanges configured by the FMZ dashboard (pid identification), you can also set exchange configuration information that has not been configured to operate the bot
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}}
]
}
নোটঃ
যখন আপনি সংবেদনশীল তথ্য ব্যবহার করেন, যেমন প্ল্যাটফর্মAPI KEY
সহ"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
কনফিগারেশনেeid
, আপনি FMZ তথ্য সংরক্ষণ না জানা উচিত. তথ্য ডকার প্রোগ্রাম সরাসরি পাঠানো হবে, তাই এই তথ্য প্রতিবার বট তৈরি বা পুনরায় আরম্ভ করা হবে কনফিগার করা আবশ্যক.
প্লাগইন ব্যবহার করে যে বট প্ল্যাটফর্ম সমর্থন পুনরায় আরম্ভ করার জন্য, যখন কনফিগারSettings
প্যারামিটার, আপনি নিম্নলিখিত সেটিংস করতে হবেexchanges
অ্যাট্রিবিউটঃ
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
বৈশিষ্ট্যটি বর্তমান সাধারণ প্রোটোকল দ্বারা অ্যাক্সেস করা এক্সচেঞ্জ অবজেক্টের জন্য একটি লেবেল সেট করা হয়, যাexchange.GetLabel()
কৌশল মধ্যে ফাংশন।
পরীক্ষার কৌশলঃ
কৌশল পরামিতিInterval
JavaScript
কৌশল কোড
function main(){
Log(exchange.GetAccount())
Log(exchange.GetTicker())
Log(exchange.GetDepth())
Log("Interval:", Interval)
}
রিটার্ন মান
// Create the bot successfully
{
"code": 0,
"data": {
"result": 74260,
"error": null
}
}
PluginRun(Settings)
কল করার জন্য বর্ধিত API ব্যবহার করেডিবাগিং টুল function.
প্যারামিটারSettings
একটিJSON
বস্তুর, যথা ডিবাগিং টুলের সেটিংস (Settings
অ্যাট্রিবিউটে লিখিত পরীক্ষার কোড রয়েছেsource
).
পরীক্ষার কোডPython
উদাহরণঃ
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import md5
import urllib
import json
# API KEY has been blurred; you can use your own API KEY to test
accessKey = 'f77XXXXXXXXXXXXXXX757'
# API KEY has been blurred; you can use your own API KEY to test
secretKey = 'd8XXXXXXXXXXXXXXXX41ca97ea15'
def api(method, *args):
d = {
'version': '1.0',
'access_key': accessKey,
'method': method,
'args': json.dumps(list(args)),
'nonce': int(time.time() * 1000),
}
d['sign'] = md5.md5('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).hexdigest()
return json.loads(urllib.urlopen('https://www.fmz.com/api/v1', urllib.urlencode(d)).read())
code = '''
function main() {
Log(exchange.GetTicker())
exchange.SetTimeout(2000);
return exchanges[0].GetTicker()
}
'''
settings = {
# K-line period parameter "60" indicates 60 seconds
"period": 60,
"source": code,
# The docker ID can specify which docker to run the bot on; if the value is -1, it means automatic assignment
"node" : 54913,
"exchanges": [
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}
]
}
print api("PluginRun", settings)
নোটঃ{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}
এর জন্যexchanges
বৈশিষ্ট্যসেটিংস, অ্যাট্রিবিউট শুধুমাত্র 1 সেট করা প্রয়োজন, যখন কলPluginRun
ইন্টারফেস (শুধুমাত্র এক এক্সচেঞ্জ অবজেক্টের জন্য সমর্থিত হতে পারে যখন আপনি
রিটার্ন মানapi("PluginRun", settings)
রিটার্ন করা ফলাফলঃ
{
u'code': 0,
u'data': {
u'result': u'{"logs":[{"PlatformId":"","OrderId":"0","LogType":5,"Price":0,"Amount":0,"Extra":"{\\"Info\\":{\\"date\\":\\"1523715057\\",\\"ticker\\":{\\"high\\":\\"0.06400845\\",\\"vol\\":\\"117648.31546800\\",\\"last\\":\\"0.06204514\\",\\"low\\":\\"0.06178666\\",\\"buy\\":\\"0.06200001\\",\\"sell\\":\\"0.06208728\\"}},\\"High\\":0.06400845,\\"Low\\":0.06178666,\\"Sell\\":0.06208728,\\"Buy\\":0.06200001,\\"Last\\":0.06204514,\\"Volume\\":117648.315468,\\"OpenInterest\\":0,\\"Time\\":1523715057726}","Instrument":"","Direction":"","Time":1523715057726}],"result":"{\\"Info\\":{\\"date\\":\\"1523715057\\",\\"ticker\\":{\\"vol\\":\\"117648.31546800\\",\\"last\\":\\"0.06204514\\",\\"low\\":\\"0.06178666\\",\\"buy\\":\\"0.06200001\\",\\"sell\\":\\"0.06208728\\",\\"high\\":\\"0.06400845\\"}},\\"High\\":0.06400845,\\"Low\\":0.06178666,\\"Sell\\":0.06208728,\\"Buy\\":0.06200001,\\"Last\\":0.06204514,\\"Volume\\":117648.315468,\\"OpenInterest\\":0,\\"Time\\":1523715057774}"}\n',
u'error': None
}
}
GetRobotLogs(robotId, logMinId, logMaxId, logOffset, logLimit, profitMinId, profitMaxId, profitOffset, profitLimit, chartMinId, chartMaxId, chartOffset, chartLimit, chartUpdateBaseId, chartUpdateDate, summaryLimit)
রোবট লগ তথ্য পায় (রোবটID
: robotId
), যাAPI KEY
FMZ Quant অ্যাকাউন্টের অনুরোধে।
প্যারামিটার
প্যারামিটারের নাম | প্রকার | মন্তব্যসমূহ |
---|---|---|
robotId | পূর্ণসংখ্যা | বট আইডি |
টেবিল লগডাটাবেস টেবিলের লগ ডেটা অনুসন্ধান করেঃ
প্যারামিটারের নাম | প্রকার | মন্তব্যসমূহ |
---|---|---|
লগমিনড | পূর্ণসংখ্যা | লগের ন্যূনতম আইডি |
logMaxId | পূর্ণসংখ্যা | লগের সর্বাধিক আইডি |
লগঅফসেট | পূর্ণসংখ্যা | পরিসীমা logMinId এবং logMaxId দ্বারা নির্ধারিত হয় পরে, logOffset অফসেট (কত রেকর্ড skip) তথ্য প্রাপ্তির জন্য শুরু অবস্থান হিসাবে ব্যবহার করা শুরু হয় |
logLimit | পূর্ণসংখ্যা | শুরু অবস্থান নির্ধারণ করার পর, নির্বাচিত তথ্য রেকর্ডের সংখ্যা |
টেবিল মুনাফাডাটাবেস টেবিলের মুনাফা তথ্য অনুসন্ধান করেঃ
প্যারামিটারের নাম | প্রকার | মন্তব্যসমূহ |
---|---|---|
মুনাফা | পূর্ণসংখ্যা | রেকর্ডের ন্যূনতম আইডি |
লাভMaxId | পূর্ণসংখ্যা | রেকর্ডের সর্বোচ্চ আইডি |
মুনাফাঅফসেট | পূর্ণসংখ্যা | অফসেট (কয়েকটি রেকর্ড এড়িয়ে যাওয়া হয়) প্রারম্ভিক অবস্থান হিসাবে ব্যবহার করা শুরু হয় |
লাভসীমা | পূর্ণসংখ্যা | শুরু অবস্থান নির্ধারণ করার পর, নির্বাচিত তথ্য রেকর্ডের সংখ্যা |
টেবিল চার্টডাটাবেস টেবিলের চার্ট ডেটা অনুসন্ধান করেঃ
প্যারামিটারের নাম | প্রকার | মন্তব্যসমূহ |
---|---|---|
চার্ট | পূর্ণসংখ্যা | রেকর্ডের ন্যূনতম আইডি |
চার্টMaxId | পূর্ণসংখ্যা | রেকর্ডের সর্বোচ্চ আইডি |
চার্টঅফসেট | পূর্ণসংখ্যা | অফসেট |
চার্টসীমা | পূর্ণসংখ্যা | প্রাপ্ত রেকর্ডের সংখ্যা |
chartUpdateBaseId | পূর্ণসংখ্যা | আপডেট করা বেস আইডি অনুসন্ধান করুন |
চার্টUpdateDate | পূর্ণসংখ্যা | ডেটা রেকর্ড টাইমস্ট্যাম্প আপডেট করে যা এই টাইমস্ট্যাম্পের চেয়ে বড় রেকর্ডগুলি ফিল্টার করবে |
সংক্ষিপ্তসারসীমাস্ট্যাটাস বারের তথ্য অনুসন্ধান করেঃ
এটি বটের স্ট্যাটাস বার ডেটা অনুসন্ধান করে। প্যারামিটার প্রকারটি পূর্ণসংখ্যা। summaryLimit
সমস্ত অবস্থা বার তথ্য পেতে পরামিতি). অবস্থা বার তথ্য ফিরে তথ্য সংরক্ষণ করা হয়summary
.
Python
উদাহরণঃ
api('GetRobotLogs', 63024, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) # For the specific code, please refer to the above content: 4. Simple examples, which will not be repeated here; here only write the call and pass of "GetRobotLogs"
রিটার্ন মান রিটার্ন করা তথ্যঃ
{
"code": 0,
"data": {
"result": {
"status": 1,
"updateTime": 1527049990197,
"wd": 0,
// The first data structure in logs is the log records in the strategy log table in the bot database
"logs": [{
"Max": 3984,
"Arr": [
[3977, 3, "Futures_OKCoin", "", 0, 0, "Sell(688.9, 2): 20016", 1526954372591, "", ""],
[3976, 5, "", "", 0, 0, "OKCoin:this_week too many positions, long: 2", 1526954372410, "", ""]
],
"Total": 1503,
"Min": 2482
}, {
// The second data structure in logs is the log records in the strategy log table in the bot database
"Max": 0,
"Arr": [],
"Total": 0,
"Min": 0
}, {
// The third data structure in logs is the log records in the strategy log table in the bot database
"Max": 0,
"Arr": [],
"Total": 0,
"Min": 0
}],
"chart": "",
"refresh": 1527049988000,
"summary": "...",
"chartTime ": 0,
"node_id ": 50755,
"online ": true
},
"error ": null
}
}
ডাটাবেসের কৌশল লগ টেবিল
দ্যArr
উপরের রিটার্ন করা ফলাফলের ডেটাতে অ্যাট্রিবিউট মানের বর্ণনাঃ
"Arr": [
[3977, 3, "Futures_OKCoin", "", 0, 0, "Sell(688.9, 2): 20016", 1526954372591, "", ""],
[3976, 5, "", "", 0, 0, "OKCoin:this_week too many positions, long: 2", 1526954372410, "", ""]
],
আইডি | লগ টাইপ | ইড | অর্ডার | দাম | পরিমাণ | অতিরিক্ত | তারিখ | চুক্তিপ্রকার | দিকনির্দেশ |
---|---|---|---|---|---|---|---|---|---|
3977 | 3 | "" | 0 | 0 | 1526954372591 | "" | "" | ||
3976 | 5 | "" | "" | 0 | 0 | 1526954372410 | "" | "" |
extra
প্রিন্ট করা লগের সংযুক্ত বার্তা।
নির্দিষ্ট লগ টাইপ দ্বারা প্রতিনিধিত্ব করা হয়logType
মানঃ
লগ টাইপঃ | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
logType এর অর্থঃ | কিনুন | বিক্রয় | প্রত্যাহার | ত্রুটি | মুনাফা | বার্তা | পুনরায় চালু করুন |
চীনা অর্থ | ক্রয় আদেশের ধরন লগ | বিক্রয় আদেশের ধরন | প্রত্যাহার করুন | ত্রুটি | আয় | লগ | পুনরায় চালু করুন |
ডাটাবেসের আয়ের চার্টের লগ টেবিল চার্টের লগ টেবিলের তথ্য কৌশল লগ টেবিলের আয় লগের সাথে সামঞ্জস্যপূর্ণ।
"Arr": [
[202, 2515.44, 1575896700315],
[201, 1415.44, 1575896341568]
]
উদাহরণস্বরূপ, লগ ডেটাগুলির একটি নিনঃ
[202, 2515.44, 1575896700315]
202
লোগোID
; 2515.44
আয়ের মূল্য হিসেবে;1575896700315
টাইমস্ট্যাম্প হিসেবে।
ডাটাবেসের চার্ট লগ টেবিল
"Arr": [
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
[23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
]
উদাহরণস্বরূপ, লগ ডেটাগুলির একটি নিনঃ
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
23637
হল লগID
, 0
হল চার্ট ডেটা সিরিজের সূচক এবং সর্বশেষ তথ্য"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"
হল লগ ডেটা; এই ডেটা হল চার্টের কে-লাইন ডেটা।
ট্রেডিং টার্মিনালের কার্যকারিতা উন্নত করতে এবং ম্যানুয়াল ট্রেডিংয়ের সুবিধার্থে, এখন একটি প্লাগ-ইন ফাংশন উপলব্ধ। অবস্থানটি নিম্নরূপ দেখানো হয়েছেঃ
নীতিটি ডিবাগিং সরঞ্জামটির মতোইঃ
Trading Plugin
, যা সমর্থনJavaScript
, Python
, cpp
এবংMyLanguage
.
প্লাগইন একটি নির্দিষ্ট সময়ের জন্য কোড চালাতে পারে, এবং এটি কিছু সহজ অপারেশন সম্পাদন করতে পারে, যেমনঃআইসবার্গ অর্ডার, অপেক্ষমান আদেশ, অর্ডার বাতিলএবংঅর্ডার গণনাএকইভাবেডিবাগিং টুল, এটি ব্যবহার করেreturn
এখানে কিছু উদাহরণ আছে, এবং অন্যান্য ফাংশন আপনি নিজেরাই অন্বেষণ করতে পারেন।
গভীরতার স্ন্যাপশটে ফিরে যান
// Return to the depth snapshot
function main() {
var tbl = {
type: 'table',
title: 'snapshot of the order depth @ ' + _D(),
cols: ['#', 'Amount', 'Ask', 'Bid', 'Amount'],
rows: []
}
var d = exchange.GetDepth()
for (var i = 0; i < Math.min(Math.min(d.Asks.length, d.Bids.length), 15); i++) {
tbl.rows.push([i, d.Asks[i].Amount, d.Asks[i].Price+'#ff0000', d.Bids[i].Price+'#0000ff', d.Bids[i].Amount])
}
return tbl
}
def main():
tbl = {
"type": "table",
"title": "snapshot of the order depth @ " + _D(),
"cols": ["#", "Amount", "Ask", "Bid", "Amount"],
"rows": []
}
d = exchange.GetDepth()
for i in range(min(min(len(d["Asks"]), len(d["Bids"])), 15)):
tbl["rows"].append([i, d["Asks"][i]["Amount"], str(d["Asks"][i]["Price"]) + "#FF0000", str(d["Bids"][i]["Price"]) + "#0000FF", d["Bids"][i]["Amount"]])
return tbl
void main() {
json tbl = R"({
"type": "table",
"title": "abc",
"cols": ["#", "Amount", "Ask", "Bid", "Amount"],
"rows": []
})"_json;
tbl["title"] = "snapshot of the order depth @" + _D();
auto d = exchange.GetDepth();
for(int i = 0; i < 5; i++) {
tbl["rows"].push_back({format("%d", i), format("%f", d.Asks[i].Amount), format("%f #FF0000", d.Asks[i].Price), format("%f #0000FF", d.Bids[i].Price), format("%f", d.Bids[i].Amount)});
}
LogStatus("`" + tbl.dump() + "`");
// C++ does not support "return json" to display the table, and you can create a bot to display the table of the status bar
}
ক্রস-পিরিয়ড স্প্রেড আঁকুন
// Draw cross-period spreads
var chart = {
__isStock: true,
title : { text : 'spread analysis chart'},
xAxis: { type: 'datetime'},
yAxis : {
title: {text: 'spread'},
opposite: false
},
series : [
{name : "diff", data : []}
]
}
function main() {
exchange.SetContractType('quarter')
var recordsA = exchange.GetRecords(PERIOD_M5)
exchange.SetContractType('this_week')
var recordsB = exchange.GetRecords(PERIOD_M5)
for(var i = 0; i < Math.min(recordsA.length, recordsB.length); i++){
var diff = recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Close - recordsB[recordsB.length - Math.min(recordsA.length, recordsB.length) + i].Close
chart.series[0].data.push([recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Time, diff])
}
return chart
}
chart = {
"__isStock": True,
"title": {"text": "spread analysis chart"},
"xAxis": {"type": "datetime"},
"yAxis": {
"title": {"text": "spread"},
"opposite": False
},
"series": [
{"name": "diff", "data": []}
]
}
def main():
exchange.SetContractType("quarter")
recordsA = exchange.GetRecords(PERIOD_M5)
exchange.SetContractType("this_week")
recordsB = exchange.GetRecords(PERIOD_M5)
for i in range(min(len(recordsA), len(recordsB))):
diff = recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i].Close - recordsB[len(recordsB) - min(len(recordsA), len(recordsB)) + i].Close
chart["series"][0]["data"].append([recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i]["Time"], diff])
return chart
// C++ does not support "return json" structure drawing
ট্রেডিং টার্মিনালের প্লাগইন মডিউল যোগ করুন
চিত্রের মত,
প্লাগইন চালান
প্লাগইন চালানোর সময় প্লাগইনের সর্বাধিক চলমান সময় 3 মিনিট; এবং এটি 3 মিনিটের বেশি পরে স্বয়ংক্রিয়ভাবে চলমান বন্ধ হবে।
বিশ্লেষণ সূত্রটি বাজার কোট গণনার পদ্ধতিকে বোঝায়।alpha101
এরworldquant
: http://q.fmz.com/chart/doc/101_Formulaic_Alphas.pdf, যা মূলত এর ব্যাকরণের সাথে সামঞ্জস্যপূর্ণ (অপ্রয়োগ করা বৈশিষ্ট্যগুলির ব্যাখ্যা সহ), এবং উন্নত করা হয়েছে।
এটি সময় সিরিজের উপর দ্রুত গণনা সম্পাদন এবং ধারণাগুলি যাচাই করার জন্য ব্যবহৃত হয়,ঠিকানা ব্যবহার করুন.
পাতা ভূমিকা:
"{}" নীচে স্থানধারক প্রতিনিধিত্ব করে, সমস্ত অভিব্যক্তি বড় হাতের সংবেদনশীল নয়, এবং
abs(x), log(x), sign(x)
আক্ষরিক অর্থে একেবারে মান, লগারিদম এবং চিহ্ন ফাংশন, যথাক্রমে মানে।নিম্নলিখিত অপারেটররা, যার মধ্যে+, -, *, /, >, <
, তাদের মানদণ্ডের অর্থও পূরণ করে;==
||
মানে x? y: z
ত্রিমাত্রিক অপারেটর নির্দেশ করে।
rank(x)
: ক্রস-সেকশনের র্যাঙ্কিং, অবস্থানের শতাংশ প্রদান করে; একাধিক প্রার্থী লক্ষ্য পুল নির্দিষ্ট করা প্রয়োজন, যা একক বাজারের জন্য গণনা করা যায় না এবং সরাসরি মূল ফলাফল প্রদান করবে।delay(x, d)
: ক্রমের d সময়ের আগে মান।sma(x, d)
: ধারাবাহিকতার d সময়ের সরল চলমান গড়।correlation(x, y, d)
: বিগত d সময়ের সময় x এবং y সময় সিরিজের সংশ্লিষ্ট কোয়ালিটি।covariance(x, y, d)
: বিগত d সময়ের সময় x এবং y সময় সিরিজের সহবিবর্তন।scale(x, a)
: এটি তথ্যকে স্বাভাবিক করে তোলে, যাতেsum(abs(x)) = a
(delta(x, d)
: সময় সিরিজের বর্তমান মান x বিয়োগ d সময়ের আগে মান।signedpower(x, a)
: x^a
.decay_linear(x, d)
: d-period moving average of time series x, with weights being d, d-1, d-2... 1 (normalized) সময় সিরিজের ওজনযুক্ত d-period চলমান গড়, যার ওজন d, d-1, d-2... 1 (ন্যরমালাইজড) ।indneutralize(x, g)
: শিল্প শ্রেণিবিন্যাসের জন্য নিরপেক্ষ প্রক্রিয়াকরণ ts_{O}(x, d)
ts_min(x, d)
: বিগত d সময়ের সর্বনিম্ন মান।ts_max(x, d)
: বিগত d সময়ের সর্বাধিক মান।ts_argmax(x, d)
: ts_max(x, d)
position.ts_argmin(x, d)
: ts_min(x, d)
position.ts_rank(x, d)
: বিগত d সময়ের সময় সিরিজের x মানের বাছাই (প্রতিশত বাছাই) ।min(x, d)
: ts_min(x, d)
.max(x, d)
: ts_max(x, d)
.sum(x, d)
: বিগত d সময়ের যোগফল।product(x, d)
: গত d সময়ের পণ্য।stddev(x, d)
: বিগত d সময়ের মান বিচ্যুতি।ইনপুট ডেটা বড় হাতের সংবেদনশীল নয়; ডিফল্ট ডেটা ওয়েব পৃষ্ঠায় নির্বাচিত প্রতীক, অথবা এটি সরাসরি নির্দিষ্ট করা যেতে পারে, যেমনঃbinance.ada_bnb
returns
: বন্ধের মূল্যের রিটার্ন।open, close, high, low, volume
: বিশেষ করে খোলা মূল্য, বন্ধ মূল্য, সর্বোচ্চ মূল্য, সর্বনিম্ন মূল্য এবং সময়ের ব্যবসায়ের পরিমাণ।vwap
: ভলিউম-ওয়েটেড এক্সিকিউটেড প্রাইস, যা এখনও বাস্তবায়িত হয়নি, যা বর্তমানে বন্ধের মূল্য।cap
: মোট বাজারমূল্য, এখনও বাস্তবায়িত হয়নি।IndClass
: শিল্প শ্রেণীবিভাগ, এখনও বাস্তবায়িত হয়নি।একাধিক ফলাফল (তালিকা দ্বারা প্রকাশিত) একসাথে আউটপুট সমর্থন করা হয়; উদাহরণস্বরূপ,[sma(close, 10), sma(high, 30)]
সময় সিরিজ তথ্য ইনপুট ছাড়াও, এটি একটি সহজ ক্যালকুলেটর হিসাবে ব্যবহার করা যেতে পারে।
এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের জন্য যা এখনও এক্সচেঞ্জ এপিআই ইন্টারফেসকে ক্যাপসুল করেনি, এটি একটি সাধারণ প্রোটোকল প্লাগ-ইন প্রোগ্রাম লিখে অ্যাক্সেস করা যেতে পারে। আপনি এই সাধারণ প্রোটোকলটি ব্যবহার করে যে কোনও এক্সচেঞ্জ অ্যাক্সেস করতে পারেন যা ট্রেডিংয়ের জন্য এপিআই ইন্টারফেস সরবরাহ করে এবং নিম্নলিখিত দুটি প্রোটোকল সমর্থিতঃ
REST
প্রোটোকলঃরেফারেন্স ডকুমেন্টেশন.FIX
প্রোটোকলঃরেফারেন্স আইটেম.এর মধ্যে পার্থক্যFIX
প্রোটোকল প্লাগ ইন প্রোগ্রাম এবংREST
প্রোটোকল প্লাগ-ইন প্রোগ্রামটি কেবল প্রোটোকল প্লাগ-ইন প্রোগ্রাম এবং এক্সচেঞ্জ ইন্টারফেসের মধ্যে মিথস্ক্রিয়া। প্রোটোকল প্লাগ-ইন প্রোগ্রামটিতে এফএমজেড কোয়ান্টের মতো ডকার প্রোগ্রাম মিথস্ক্রিয়া এবং ডেটা ফর্ম্যাটের একই বিশদ প্রক্রিয়াকরণ রয়েছে। বিস্তারিত জানার জন্য, দয়া করে উপরের লিঙ্কগুলিতে উদাহরণগুলি দেখুন।
এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম একটি মডুলার এবং কাস্টমাইজযোগ্য
ডিবাগ টুলপৃষ্ঠাটি বট দ্বারা দ্রুত কোড পরীক্ষা করার জন্য একটি পরিবেশ প্রদান করে, শুধুমাত্র সমর্থন করেJavaScript
currently.
এটি স্থানীয় সম্পাদক দূরবর্তী সিঙ্ক্রোনাইজেশন কৌশল কোড সমর্থন করে FMZ Quant ট্রেডিং প্ল্যাটফর্ম এবং এটি সমর্থন করেSublime Text
/Atom
/Vim
/VSCode
সম্পাদক. কৌশল সম্পাদনা পৃষ্ঠায়, ক্লিক করুন
বর্তমান কী প্রদর্শনটি রিফ্রেশ করতে
বিভিন্ন সম্পাদকের প্লাগ-ইন ইনস্টলেশন পদ্ধতি সামান্য ভিন্ন। আপনি নির্দিষ্ট দূরবর্তী সিঙ্ক্রোনাইজেশন প্লাগ-ইন আইটেমটিতে ঝাঁপ দিতে ডাউনলোড বোতামে ক্লিক করতে পারেন।
লাইভ ট্রেডিং চালানোর সময়, আপনি বাস্তব বট কনফিগারেশন পরামিতি তথ্য সংরক্ষণ করতে হবে, আপনি JSON
ফাইল, এবং রপ্তানি কৌশল পরামিতি কনফিগারেশন আবার বাস্তব বট আমদানি করা যেতে পারে. বর্তমান বাস্তব বট সংরক্ষিত কৌশল বট পরামিতি আমদানি করতে
উৎস কোড ডাউনলোড করুন
কৌশল উত্স কোড রপ্তানি করুন, এবং রপ্তানি ফাইলের ধরন কৌশল প্রোগ্রামিং ভাষা উপর ভিত্তি করে। জাভাস্ক্রিপ্ট কৌশল এক্সটেনশন সঙ্গে ফাইল রপ্তানিjs
; পাইথন কৌশল এক্সটেনশান সহ ফাইল রপ্তানি করেpy
; সি++ কৌশল এক্সটেনশান সহ ফাইল এক্সপোর্ট করেcpp
; মাইল্যাঙ্গুয়েজ কৌশল এক্সটেনশান সহ ফাইল এক্সপোর্ট করেtxt
. লক্ষ্য করুন যে শুধুমাত্র কৌশল উৎস কোড রপ্তানি করা হয়, কৌশল পরামিতি, টেমপ্লেট রেফারেন্স, ইত্যাদি সহ নয়
রপ্তানি কৌশল
কৌশল উৎস কোড এবং পরামিতি নকশা মত সমস্ত কৌশল তথ্য সহ সম্পূর্ণ কৌশল রপ্তানি করুন.xml
file.
আমদানি কৌশল
ব্যবহার করুনxml
xml
আমদানি করার পর, আপনি
কৌশল নাম এবং কৌশল পরামিতি বর্ণনা লিখতে পারেনChinese|English
, ওয়েব পেজ দ্বারা স্বীকৃত ভাষায় স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়।
অন্যান্য স্থানে, যেমনঃকৌশল বর্ণনা, ব্যবহারের নির্দেশএবং অন্যান্য পাঠ্যMarkdown
ফরম্যাট, ব্যবহার করে[trans]Chinese|English[/trans]
অথবা[trans]Chinese||English[/trans]
এটি স্বয়ংক্রিয় স্বীকৃতির প্রভাবও অর্জন করতে পারে। উপরের উদাহরণটির প্রভাব নিম্নলিখিত চিত্রটিতে দেখানো হয়েছেঃ
চীনা ভাষায় পাতা প্রদর্শনঃ
ইংরেজিতে পৃষ্ঠা প্রদর্শনঃ
ভাষা পরিবর্তন করার পরে, এটি ওয়েব পৃষ্ঠাটি রিফ্রেশ করার পরে প্রভাব ফেলবে।
কৌশল কোডে স্ট্রিং লিখতে পারে এমন ফাংশনগুলি ভাষা স্যুইচিং সমর্থন করে, যেমন ফাংশনLog
, ফাংশনLogStatus
ইত্যাদি।
function main() {
Log("[trans]日志|log[/trans]")
var table = {
type: "table",
title: "[trans]操作|option[/trans]",
cols: ["[trans]列1|col1[/trans]", "[trans]列2|col2[/trans]", "[trans]操作|option[/trans]"],
rows: [
["[trans]比特币|BTC[/trans]", "[trans]以太坊|ETH[/trans]", {"type": "button", "cmd": "coverAll", "name": "平仓|cover", "description": "描述|description"}] // Note: It doesn't need to add [trans] tag in the button
]
}
LogStatus("[trans]信息|message[/trans]", "\n`" + JSON.stringify(table) + "`")
throw "[trans]错误|error[/trans]"
}
import json
def main():
Log("[trans]日志|log[/trans]")
table = {
"type": "table",
"title": "[trans]操作|option[/trans]",
"cols": ["[trans]列1|col1[/trans]", "[trans]列2|col2[/trans]", "[trans]操作|option[/trans]"],
"rows": [
["[trans]比特币|BTC[/trans]", "[trans]以太坊|ETH[/trans]", {"type": "button", "cmd": "coverAll", "name": "平仓|cover", "description": "描述|description"}]
]
}
LogStatus("[trans]信息|message[/trans]", "\n`" + json.dumps(table) + "`")
raise Exception("[trans]错误|error[/trans]")
void main() {
Log("[trans]日志|log[/trans]");
json table = R"({
"type": "table",
"title": "[trans]操作|option[/trans]",
"cols": ["[trans]列1|col1[/trans]", "[trans]列2|col2[/trans]", "[trans]操作|option[/trans]"],
"rows": [
["[trans]比特币|BTC[/trans]", "[trans]以太坊|ETH[/trans]", {"type": "button", "cmd": "coverAll", "name": "平仓|cover", "description": "描述|description"}]
]
})"_json;
LogStatus("[trans]信息|message[/trans]", "\n`" + table.dump() + "`");
Panic("[trans]错误|error[/trans]");
}
ডকার সফটওয়্যার ডাউনলোড করার পর, এক্সিকিউটেবল ফাইলটি ডিকম্প্রেশনের পরে (ফাইলের নামঃrobot
) হ'ল ডকার প্রোগ্রাম; ডকার প্রোগ্রামটি স্থাপন করার সময় ডকার প্রোগ্রামের জন্য প্যারামিটারগুলি নির্দিষ্ট করা যেতে পারে।
-v
: বর্তমান ডকার প্রোগ্রামের সংস্করণ এবং কম্পাইলের সময় সহ তথ্য পরীক্ষা করুন।
সম্পূর্ণ এক্সিকিউশন কমান্ড ভিত্তিক হয়Apple Mac System
: ./robot -v
.-s
: ডকার প্রোগ্রাম চালানোর সময় FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের সাথে যোগাযোগের জন্য নির্দিষ্ট ঠিকানা।
সম্পূর্ণ এক্সিকিউশন কমান্ড ভিত্তিক হয়Apple Mac System
: ./robot -s node.fmz.com/xxxxxxx
; xxxxxxx
FMZ Quant Trading প্ল্যাটফর্মের প্রতিটি অ্যাকাউন্টের অনন্য সনাক্তকরণ আইডি; কমান্ডটি কার্যকর করার পরে, সংশ্লিষ্ট FMZ Quant Trading প্ল্যাটফর্মের অ্যাকাউন্টের পাসওয়ার্ড প্রবেশ করার জন্য একটি অনুরোধ থাকবে।-p
: আপনি সরাসরি পাসওয়ার্ড প্রবেশ করতে রান কমান্ড প্যারামিটার নির্দিষ্ট করতে পারেন, যা প্রস্তাবিত নয়, কারণ পাসওয়ার্ড প্যারামিটার বর্তমান সিস্টেম রেকর্ডে বাকি থাকবে. অ্যাকাউন্ট পাসওয়ার্ড ঠিকানা অনুরূপ অনুমানnode.fmz.com/xxxxxxx
হচ্ছেঃabc123456
.
সম্পূর্ণ এক্সিকিউশন কমান্ডটি ভিত্তি করেApple Mac System
: ./robot -s node.fmz.com/xxxxxxx -p abc123456
.-n
: চলমান ডকার প্রোগ্রামে লেবেল তথ্য সংযুক্ত করুন।
সম্পূর্ণ এক্সিকিউশন কমান্ডটি ভিত্তি করেApple Mac System
: ./robot -n macTest -s node.fmz.com/xxxxxxx
. সেখানে একটি হবেmacTest
প্ল্যাটফর্ম ডকার ম্যানেজমেন্ট পৃষ্ঠার ডকার তথ্যে টেক্সট লেবেল।-l
: বর্তমান ডকার দ্বারা সমর্থিত এক্সচেঞ্জ তালিকা মুদ্রণ করুন.
সম্পূর্ণ এক্সিকিউশন কমান্ডটি ভিত্তি করেApple Mac System
: ./robot -l
, অর্থাৎ, সমর্থিত এক্সচেঞ্জের নামগুলি আউটপুট করা যেতে পারে।exchange.Go
কার্যকারিতা, কোন যুক্তিসঙ্গতwait
অপারেশন চলাকালীন ক্যারোরুটিনের শেষের জন্য অপেক্ষা করা, যার ফলে ক্যারোরুটিনের একটি বড় সংখ্যা ঘটে।Decrypt: Secret key decrypt failed
, যা লাইভ ট্রেডিং শুরু করতে ব্যর্থ হবে। ত্রুটির কারণ হল যে FMZ অ্যাকাউন্ট পাসওয়ার্ড পরিবর্তন সমস্ত কনফিগার করাAPI KEY
সমস্যা সমাধানের জন্য,API KEY
পুনরায় কনফিগার করা প্রয়োজন, এবং ডকার পুনরায় চালু করা প্রয়োজন.ValueError: bad marshal data (unknown type code)
. কৌশল দ্বারা চালিত পাইথন পরিবেশকে কৌশল দ্বারা সমর্থিত সংস্করণগুলির মধ্যে একটিতে আপগ্রেড বা ইনস্টল করুনঃPython 2.7
, Python 3.5
এবংPython 3.6
.interrupt
ত্রুটি; ত্রুটি কারণ ব্যবহারকারী ক্লিকবট বন্ধ করুনবট পৃষ্ঠার বোতামটি যখন প্রোগ্রামটি একটি অপারেশন সম্পাদন করে (যেমন প্ল্যাটফর্ম ইন্টারফেসে অ্যাক্সেস করা), এবং বটটি বর্তমান অপারেশন দ্বারা মুদ্রিত ত্রুটি বার্তাটি বন্ধ করে দেয় এবং বিরতি দেয়। ত্রুটিটির কোনও প্রভাব নেই এবং এটি কেবল একটি লগ রেকর্ড।এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের
উপ-অ্যাকাউন্ট
প্ল্যাটফর্মে লগ ইন করার পর,
উপ-অ্যাকাউন্টের অনুমতি সীমিত; শুধুমাত্র অনুমোদিত বটগুলিউপলব্ধ অনুমতিউপ-অ্যাকাউন্টে দেখা যাবে। অনুমোদিত বট প্যারামিটার পরিবর্তন, লাইভ ট্রেডিং বন্ধ এবং পুনরায় শুরু করার ক্ষমতা আছে, কিন্তু এটি বট দ্বারা কনফিগার করা বিনিময় বস্তু পরিবর্তন করতে পারে না। উপ-অ্যাকাউন্টের ব্যবহারের দৃশ্যকল্প সাধারণতঃ
লাইভ ট্রেডিং ভিউ
FMZ প্ল্যাটফর্মের বট তালিকায়বট পাতা, বর্তমান সারির বটগুলি সর্বজনীনভাবে প্রদর্শন করতে
চালু
কৌশল ভাগাভাগি
পাবলিক শেয়ারিং
অভ্যন্তরীণ শেয়ারিং
কৌশল ভাড়া
পাবলিক বিক্রয়
অভ্যন্তরীণ বিক্রয়
গুরুত্বপূর্ণ নোটঃ
যখন তৈরি এবং বিতরণকৌশল টোকেন, দয়া করে এটি একটি
function returnAnalyze(totalAssets, profits, ts, te, period, yearDays) {
// force by days
period = 86400000
if (profits.length == 0) {
return null
}
var freeProfit = 0.03 // 0.04
var yearRange = yearDays * 86400000
var totalReturns = profits[profits.length - 1][1] / totalAssets
var annualizedReturns = (totalReturns * yearRange) / (te - ts)
// MaxDrawDown
var maxDrawdown = 0
var maxAssets = totalAssets
var maxAssetsTime = 0
var maxDrawdownTime = 0
var maxDrawdownStartTime = 0
var winningRate = 0
var winningResult = 0
for (var i = 0; i < profits.length; i++) {
if (i == 0) {
if (profits[i][1] > 0) {
winningResult++
}
} else {
if (profits[i][1] > profits[i - 1][1]) {
winningResult++
}
}
if ((profits[i][1] + totalAssets) > maxAssets) {
maxAssets = profits[i][1] + totalAssets
maxAssetsTime = profits[i][0]
}
if (maxAssets > 0) {
var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
if (drawDown > maxDrawdown) {
maxDrawdown = drawDown
maxDrawdownTime = profits[i][0]
maxDrawdownStartTime = maxAssetsTime
}
}
}
if (profits.length > 0) {
winningRate = winningResult / profits.length
}
// trim profits
var i = 0
var datas = []
var sum = 0
var preProfit = 0
var perRatio = 0
var rangeEnd = te
if ((te - ts) % period > 0) {
rangeEnd = (parseInt(te / period) + 1) * period
}
for (var n = ts; n < rangeEnd; n += period) {
var dayProfit = 0.0
var cut = n + period
while (i < profits.length && profits[i][0] < cut) {
dayProfit += (profits[i][1] - preProfit)
preProfit = profits[i][1]
i++
}
perRatio = ((dayProfit / totalAssets) * yearRange) / period
sum += perRatio
datas.push(perRatio)
}
var sharpeRatio = 0
var volatility = 0
if (datas.length > 0) {
var avg = sum / datas.length;
var std = 0;
for (i = 0; i < datas.length; i++) {
std += Math.pow(datas[i] - avg, 2);
}
volatility = Math.sqrt(std / datas.length);
if (volatility !== 0) {
sharpeRatio = (annualizedReturns - freeProfit) / volatility
}
}
return {
totalAssets: totalAssets,
yearDays: yearDays,
totalReturns: totalReturns,
annualizedReturns: annualizedReturns,
sharpeRatio: sharpeRatio,
volatility: volatility,
maxDrawdown: maxDrawdown,
maxDrawdownTime: maxDrawdownTime,
maxAssetsTime: maxAssetsTime,
maxDrawdownStartTime: maxDrawdownStartTime,
winningRate: winningRate
}
}
ফিউচার_বাইনান্স
এটা Binance ফিউচার এর দ্বৈত অবস্থান মোড সমর্থন করে; আপনি ব্যবহার করতে পারেনexchange.IO
স্যুইচ করতেঃ
function main() {
var ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true")
// ret : {"code":200,"msg":"success"}
Log(ret)
}
def main():
ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=false")
Log(ret)
void main() {
auto ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true");
Log(ret);
}
এটি ক্রস অবস্থান / বিচ্ছিন্ন অবস্থান মধ্যে সুইচিং সমর্থন করে
function main() {
exchange.SetContractType("swap")
exchange.IO("cross", true) // Switch to crossed position
exchange.IO("cross", false) // Switch to isolated position
}
def main():
exchange.SetContractType("swap")
exchange.IO("cross", True)
exchange.IO("cross", False)
void main() {
exchange.SetContractType("swap");
exchange.IO("cross", true);
exchange.IO("cross", false);
}
ফিউচার_হুওবিডিএম
এটা স্বাক্ষর অংশগ্রহণকারী Huobi ফিউচার ঠিকানা পরিবর্তন সমর্থন করে, যা ডিফল্টরূপে স্যুইচ করা হয় না. আপনি যদি ফাংশন নিষ্ক্রিয় করতে হবে, আপনি ব্যবহার করতে পারেনexchange.IO("signHost", "")
একটি খালি স্ট্রিং সেট করতে.
ব্যবহারexchange.IO("signHost", "https://aaa.xxx.xxx")
স্বাক্ষর যাচাইকরণে অংশগ্রহণকারী হুবি ফিউচারসের বেস ঠিকানা পরিবর্তন করা।
ব্যবহারexchange.IO("base", "https://bbb.xxx.xxx")
অথবাexchange.SetBase("https://bbb.xxx.xxx")
প্ল্যাটফর্ম ইন্টারফেসের বেস ঠিকানা পরিবর্তন করতে।
যখন ট্রেডিং জোড়া সেট করা হয়XXX_USDT
, ফাংশন ব্যবহার করুনexchange.SetContractType("swap")
চুক্তি কোড সেট করতেswap
স্থায়ী চুক্তি, ব্যবহার করেexchange.IO("cross", true)
পরিবর্তন করতে পারেনUSDT
- ক্রস পজিশন মোডে মার্জিনযুক্ত চিরস্থায়ী চুক্তি।exchange.IO("cross", false)
আইসোলেটেড পজিশন মোডে ফিরে যেতে। প্রাথমিক ডিফল্টটি আইসোলেটেড পজিশন মোড।
হুবি
এটি Huobi স্পট লিভারেজ টোকেন সমর্থন করে, যেমনঃLINK*(-3)
; বিনিময় দ্বারা সংজ্ঞায়িত কোড হলঃlink3susdt
, যা লেখা হয় যখন FMZ ট্রেডিং জোড়া সেট করেLINK3S_USDT
.
ট্রেডিং জোড়া পরিবর্তন করাও সম্ভবঃ
function main() {
exchange.SetCurrency("LINK3S_USDT")
Log(exchange.GetTicker())
}
def main():
exchange.SetCurrency("LINK3S_USDT")
Log(exchange.GetTicker())
void main() {
exchange.SetCurrency("LINK3S_USDT");
Log(exchange.GetTicker());
}
ঠিক আছে
OKX ইন্টারফেস OKX এর সিমুলেশন বট টেস্টিং পরিবেশে স্যুইচ করতে পারে; ব্যবহার করেexchange.IO("simulate", true)
যদি আপনি বাস্তব ট্রেডিং পরিবেশে স্যুইচ করতে চান, ব্যবহারexchange.IO("simulate", false)
প্রাথমিক ডিফল্ট হল প্রকৃত ট্রেডিং পরিবেশ।
এটি অ্যাকাউন্ট মার্জিন মোড পরিবর্তন সমর্থন করে; ব্যবহারexchange.IO("cross", true)
ক্রসড পজিশন মোডে স্যুইচ করতে এবং ব্যবহার করতেexchange.IO("cross", false)
বিচ্ছিন্ন অবস্থানের মোডে স্যুইচ করার জন্য, প্রাথমিক ডিফল্টটি ক্রসড অবস্থানের মোড।
ফিউচার_বিবক্স
ব্যবহারexchange.IO("cross", true)
ক্রস পজিশন মোডে স্যুইচ করতে এবং ব্যবহার করতেexchange.IO("cross", false)
বিচ্ছিন্ন অবস্থান মোডে স্যুইচ করতে; প্রাথমিক ডিফল্ট ক্রস অবস্থান মোড।
এক্সচেঞ্জ বর্তমান অপেক্ষমান অর্ডার এবং বাজারের ঐতিহাসিক ট্রেডিং রেকর্ড অনুসন্ধানের জন্য ইন্টারফেস অনুসন্ধান সমর্থন করে না, তাইGetOrders
এবংGetTrades
ফাংশন সমর্থিত নয়।
ফিউচার_বিটজেট
ব্যবহারexchange.IO("cross", true)
ক্রসড পজিশন মোডে স্যুইচ করতে এবং ব্যবহার করতেexchange.IO("cross", false)
বিচ্ছিন্ন অবস্থানের মোডে স্যুইচ করতে।
ফিউচার_এওফেক্স
ব্যবহারexchange.IO("cross", true)
ক্রসড পজিশন মোডে স্যুইচ করতে এবং ব্যবহার করতেexchange.IO("cross", false)
বিচ্ছিন্ন অবস্থানের মোডে স্যুইচ করতে।
ফিউচার_MEXC
ব্যবহারexchange.IO("cross", true)
ক্রসড পজিশন মোডে স্যুইচ করতে এবং ব্যবহার করতে` ` বিনিময়.("ক্রস",