ট্রেডিংভিউ অ্যালার্ম সিগন্যাল ট্রেডিং বাস্তবায়ন করতে উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন API ব্যবহার করুন
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন API সম্প্রতি আপগ্রেড করা হয়েছে, এবং আপগ্রেড সরাসরি অ্যাক্সেস মোড সমর্থন করে, যাতে ট্রেডিংভিউ অ্যালার্ম সংকেতগুলি সহজেই স্বয়ংক্রিয় ট্রেডিংয়ের জন্য উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম রোবটে পাঠানো যেতে পারে। আপনি যদি না জানেন যে একটি এক্সটেনশন API কী, আমার কথা শুনুন বিস্তারিতভাবে ব্যাখ্যা করুন।
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন API
উদ্ভাবক API ডকুমেন্টেশনের প্রাসঙ্গিক অংশের লিঙ্ক
বর্ধিত API-এর প্রধান কাজ হল প্রোগ্রাম্যাটিক অপারেশন উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মে বিভিন্ন ফাংশনের জন্য একটি ইন্টারফেস প্রদান করা, যেমন একই সময়ে ব্যাচে রোবট শুরু করা, নির্ধারিত সময়ে রোবট শুরু করা এবং বন্ধ করা, রোবটের তথ্যের বিবরণ পড়া ইত্যাদি। ট্রেডিংভিউ অ্যালার্ট সিগন্যাল ট্রেডিং বাস্তবায়নের জন্য আমরা ইনভেনটর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন API ব্যবহার করি। এই প্রয়োজনীয়তার জন্য শুধুমাত্র API এর এক্সটেনশন প্রয়োজন।CommandRobot(RobotId, Cmd)শুধু ইন্টারফেস ব্যবহার করুন এই ইন্টারফেসটি নির্দিষ্ট আইডি সহ রোবটকে ইন্টারেক্টিভ নির্দেশনা পাঠাতে পারে, এটি সংশ্লিষ্ট অপারেশন করতে পারে (যেমন ক্রয়, বিক্রয়, ইত্যাদি)।
এক্সটেনশন API ব্যবহার করতে, আপনাকে প্রথমে আপনার নিজের উদ্ভাবক অ্যাকাউন্ট তৈরি করতে হবে।API KEY:

API KEYচাবিকাঠি হলaccess keyএবংsecret keyরচনা,API KEYএটি প্রোগ্রামকৃত ক্রিয়াকলাপের উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের চাবিকাঠি, তাই এটি অবশ্যই সঠিকভাবে রাখা উচিত এবং ফাঁস করা উচিত নয়। একটি FMZ এক্সটেনশন তৈরি করা হচ্ছেAPI KEYআপনি যখন ব্যবহার করবেন তখন অনুমতি নির্দিষ্ট করতে পারবেনAPI KEYঅ্যাক্সেস মঞ্জুর করুনCommandRobot(RobotId, Cmd)ইন্টারফেসের অনুমতির জন্য, এই উদাহরণে নিরাপত্তা বিবেচনার জন্য, অনুগ্রহ করে শুধুমাত্র FMZ-এ এক্সটেনশন দিনAPI KEYদানCommandRobot(RobotId, Cmd)ইন্টারফেস অ্যাক্সেস অধিকার.
এক্সটেনশন API-এর জন্য সরাসরি অ্যাক্সেস মোড
সরাসরি অ্যাক্সেস মোড বোঝায়API KEYএটি সরাসরি URL-এর ক্যোয়ারীতে লিখুন, উদাহরণস্বরূপ, উদ্ভাবক কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন এপিআই অ্যাক্সেস করার URLটি এইভাবে লেখা যেতে পারে:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
মধ্যেhttps://www.fmz.com/api/v1ইন্টারফেস ঠিকানা,?দ্বারা অনুসরণ করাQuery,পরামিটারaccess_keyএকটি গোপন কী-এর উদাহরণ xxx দ্বারা উপস্থাপিত হয় (এটি ব্যবহার করার সময় আপনার নিজের FMZ অ্যাকাউন্টের অ্যাক্সেস_কি পূরণ করুন), পরামিতিsecret_keyগোপন কীটি yyyy দ্বারা প্রতিনিধিত্ব করা হয় (এটি ব্যবহার করার সময় আপনার নিজের অ্যাকাউন্ট secret_key পূরণ করুন), প্যারামিটারmethodএক্সটেনশন API ইন্টারফেসের নির্দিষ্ট নাম যা অ্যাক্সেস করা হবে,argsকল করাmethodইন্টারফেসের পরামিতি।
উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্ম রোবটকে ট্রেডিং কমান্ড পাঠাতে আমরা ট্রেডিংভিউকে সংকেত উৎস হিসেবে ব্যবহার করিCommandRobotএই ইন্টারফেস।
TradingView
প্রথমত, আপনার একটি ট্রেডিংভিউ প্রো লেভেল অ্যাকাউন্ট থাকতে হবে। আমরা ট্রেডিংভিউ চার্টে প্রবেশ করি।
চার্টে একটি সূচক যোগ করুন, তবে অন্যান্য স্ক্রিপ্টেড অ্যালগরিদমও। প্রদর্শনের সুবিধার জন্য, আমরা সর্বাধিক ব্যবহৃত ব্যবহার করিMACDনির্দেশক, এবং তারপর কে-লাইন সময়কাল 1 মিনিটে সেট করুন (সিগন্যালটি দ্রুত ট্রিগার করার জন্য এবং প্রদর্শনের সুবিধার্থে)।
চার্টে ডান-ক্লিক করুন এবং পপ-আপ মেনু থেকে "অ্যাড অ্যালার্ট" নির্বাচন করুন।
"সতর্কতা" পপ-আপ উইন্ডোতে সেট করুনWebHook, এই ধাপে, আপনাকে এটি সেট আপ করার বিষয়ে চিন্তা করতে হবে না আসুন প্রথমে উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মে সিগন্যাল-মনিটরিং রোবটটি চালাই।
সিগন্যাল অর্ডারিং রোবট পর্যবেক্ষণ করছে
কৌশল সোর্স কোড:
javascript
// 全局变量
var BUY = "buy" // 注意:现货用的命令
var SELL = "sell" // 现货用的命令
var LONG = "long" // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long" // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令
function main() {
// 清空日志,如不需要,可以删除
LogReset(1)
// 设置精度
exchange.SetPrecision(QuotePrecision, BasePrecision)
// 识别期货还是现货
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("添加的交易所为期货交易所:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct 合约设置为空"
} else {
Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
}
} else {
Log("添加的交易所为现货交易所:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// 检测交互命令
lastMsg = "命令:" + cmd + "时间:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd信息有误:", cmd, "#FF0000")
continue
}
var action = arr[0]
var amount = parseFloat(arr[1])
if (eType == 0) {
if (action == BUY) {
var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
Log("buyInfo:", buyInfo)
} else if (action == SELL) {
var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
Log("sellInfo:", sellInfo)
} else {
Log("现货交易所不支持!", "#FF0000")
}
} else if (eType == 1) {
var tradeInfo = null
var ticker = _C(exchange.GetTicker)
if (action == LONG) {
exchange.SetDirection("buy")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else if (action == SHORT) {
exchange.SetDirection("sell")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_LONG) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else {
Log("期货交易所不支持!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "状态信息",
cols : ["数据"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // 测试时使用
LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
কৌশল কোডটি খুবই সহজ, সনাক্তকরণGetCommandফাংশনের রিটার্ন মান, যখন নীতি প্রোগ্রামে একটি ইন্টারেক্টিভ বার্তা পাঠানো হয়,GetCommandফাংশনটি এই বার্তাটি ফেরত দেবে, এবং তারপর কৌশল প্রোগ্রামটি বার্তার বিষয়বস্তুর উপর ভিত্তি করে সংশ্লিষ্ট ট্রেডিং অপারেশন সম্পাদন করবে। কৌশলটি একটি ইন্টারেক্টিভ বোতামের সাথে সেট আপ করা হয়েছে, যা আপনাকে ইন্টারেক্টিভ ফাংশন পরীক্ষা করতে দেয়, যেমন এই কৌশলটি চালানো এবং উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের সিমুলেটেড এক্সচেঞ্জের সাথে রোবট কনফিগার করা।WexApp。
কেনার জন্য অর্ডার গ্রহণকারী রোবটের কার্যকারিতা পরীক্ষা করতে ইন্টারঅ্যাকশন বোতামে ক্লিক করুন।
আপনি দেখতে পাচ্ছেন যে রোবটটি যে কমান্ড স্ট্রিংটি পেয়েছে তা হল:buy:0.01。
TradingView সতর্কতা চালু হলে আমাদের কেবল WebHook অনুরোধ URL-কে Inventor Quantitative Trading Platform Extension API-এ অ্যাক্সেস করতে হবে।CommandRobotইন্টারফেস, বহন করা পরামিতিগুলি হল:buy:0.01এটাই।
TradingView এর WebHook সেট করুন
TradingView-এ ফিরে আমরা WebHook-এর URL পূরণ করি। দেনaccess_key、secret_keyআপনার নিজস্ব প্যারামিটার পূরণ করুন।API KEY。methodস্থির, আমরা যা অ্যাক্সেস করতে চাই তা হলCommandRobotএই বর্ধিত API ইন্টারফেস,argsপরামিতি হল[机器人ID,命令字符串]ফর্মে, রোবট আইডি সরাসরি রোবট পৃষ্ঠার মাধ্যমে প্রাপ্ত করা যেতে পারে, যেমন চিত্রে দেখানো হয়েছে:

এইবার আমরা 0.02 কয়েন কিনতে সিগন্যাল ট্রিগার করি: কমান্ড স্ট্রিংটি হল:"buy:0.02". এটি WebHook URL সম্পূর্ণ করে। এই পদ্ধতিটি শুধুমাত্র ইউআরএলে সংকেত লেখাকে সমর্থন করে যদি আপনি সতর্কতা বার্তার বিষয়বস্তু পেতে চান যা টিভি নীতি দ্বারা পাঠানো যেতে পারে, তাহলে https://www.fmz.com/api#�� দেখুন। %B4%E6%8E%A5%E9%AA%8C%E8%AF%81.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]
TradingView-এ সেট আপ করা:
ট্রিগার করার জন্য সিগন্যালের জন্য অপেক্ষা করা হচ্ছে...
সংকেত ট্রিগার করার জন্য অপেক্ষা করুন..
সংকেত ট্রিগার করার জন্য অপেক্ষা করুন।
...
রোবট সংকেত পেয়েছে:
এইভাবে, আপনি ট্রেডিংভিউতে সমৃদ্ধ চার্টিং ফাংশন এবং সূচক অ্যালগরিদমগুলি ব্যবহার করতে পারেন উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মের কৌশল রোবটকে জাভাস্ক্রিপ্ট এবং পাইথন ভাষায় ট্রান্সপ্লান্ট করার সাথে তুলনা করে স্বয়ংক্রিয় ট্রেডিং উপলব্ধি করতে। অসুবিধা কমে গেছে।
"মনিটরিং সিগন্যাল অর্ডার প্লেসমেন্ট রোবট" এর প্রকৃত ব্যবহারের জন্য এটিকে অপ্টিমাইজ করা প্রয়োজন এবং বিশদ বিবরণের জন্য এটিকে সাজেস্ট করা হয়েছে৷ কোড পরামিতি।
আপনার কোন প্রশ্ন বা পরামর্শ থাকলে, একটি বার্তা ছেড়ে দিন.
// 目前已经不支持:https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]这种方式,需要将参数编码,需要修改如下:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515%2C"ok12345"]
以前那个多简单明了啊。。。。[186515,"ok12345"]。。。。。为什么一定要修改成这么复杂的啊%5B186515%2C%22ok12345%22%5D
这个策略方案是一个简单的例子,只能做单个品种,多品种的可以参考另一个例子:
https://www.fmz.com/digest-topic/9794
"Flag":"{{strategy.order.id}}",
"Exchange":1,
"Currency":"1000SATS_USDT",
"ContractType":"swap",
"Price":"{{close}}",
"Action":"long",
"Amount":"33333"
}我的信号写成close了,为什么日志显示无法获取价格呢
这个代码就是策略交互这里,我测试1000sats这个交易对,我想的就是用收盘价开单,市价太贵了,但是会报错,我代码水平太差了,gpt用了找不出来具体的问题
这里测试信号指的是最终发到FMZ上的信息,你在trading view 上设置webhook 的时候写的是{{close}} 它实际发送的时候就是具体价格了。所以你在这里测试的时候只能填写具体价格,FMZ上没有、也不识别这个{{close}}占位符。
测试信号的时候填写具体价格,FMZ上不会识别你这个{{close}} ,这个是trading view上的占位符,文章看下,看明白就懂了。
这是您文章里关于这个的例子,因为这里-1都能识别是市价单,中间关于{close}也能识别,但是我查平台的api文档查不到什么对应市价单
我要怎么实现处理多个警报呢,比如同一时间,同一交易对,或者不同交易对,有多个警报传过来,但是我看我只能每秒处理一个,而且没有办法排序
有啊
我们可以自己用通用协议绑定吧?只是要求要填IP地址,这个IP地址要填哪个地址呢?
API 入口链接:https://coinw.pw/API
这个是coinw的现货API哇,coinw现货FMZ是已经支持的了,他们合约都没有接口的。您最好咨询下coinw。我问了他们客服,说是没有合约API。
你好大佬,我做的合约策略,开仓后有时中途会加仓,那么我最后要平仓的时候,用cover_long怎么平掉全部的仓位(因为不知道中间会加几次),"cover_long:1"里面的1改成什么,跪求代码
这个你可以具体设计的,比如你设计 请求里 cover_long:1, 改成 cover_long:all , 这样你在FMZ的这个 监听策略里把收到交互cover_long时修改一下, 判断如果是all,就全部平仓。要实现这个是要修改这个策略的。
// 全局变量
var BUY = "buy" // 注意:现货用的命令
var SELL = "sell" // 现货用的命令
var LONG = "long" // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long" // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令
......
....
..
.
} else if (eType == 1) {
var tradeInfo = null
var ticker = _C(exchange.GetTicker)
if (action == LONG) {
exchange.SetDirection("buy")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else if (action == SHORT) {
exchange.SetDirection("sell")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_LONG) { // COVER_LONG 就是 “cover_long” ,判断到是这个action ,进入这里的if
// 这里你再具体判断 all 之类的参数,去做全部平仓的操作设计,具体编写
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else {
Log("期货交易所不支持!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
我的TV策略消息是这样的:订单{{strategy.order.action}}@{{strategy.order.contracts}}成交{{ticker}}。新策略仓位{{strategy.position_size}}
如果我想做合约的话,是不是要添加4个警报呢?做多、平多、做空、开空
webhook能不能引用策略里面的字段呢?还是要我写死才行?webhook里面的4种方式long、cover_long\short、cover_short怎么样才能和警报里面的消息对上吗?
使用FMZ的扩展API接收TV请求,可以获取Body内容,参看:https://www.fmz.com/api#直接验证
现在TV发出请求的url里,body里的数据都可以收到了。
老师您好,我按照您的步骤一步一步照搬下来,就是服务器选用的是发明者自带的服务器,但是TV那边已经发信号了但是发明者这边的机器人还是不执行信号命令,是不是因为服务器的原因?请您答疑!!
期货现货使用是一样的, 只是链接里面 参数替换一下而已。
var BUY = "buy"
var SELL = "sell"
var LONG = "long"
var SHORT = "short"
var COVER_LONG = "cover_long"
var COVER_SHORT = "cover_short"
long就是开多头仓位,short就是开空头仓位, cover_long 就是平多头,cover_short 平空头。
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]
链接里面buy替换一下而已。
- 1
- 2























