Antes de esto, había usado el mensaje de indicadores. El método es escribir OpenLong, OpenShort en la configuración de mensajes de cada alerta y enviarlos al robot FMZ para ejecutarlos.
Eso está bien.
Ahora, el uso de estrategias para enviar mensajes es algo que no se puede hacer.
El código de TradingView es
// 警报消息
var string Message_open_long = input.string('OpenLong', '开多消息', group = '===================exit警报=======================', tooltip = '如果“创建警报”对话框的“消息”字段包含{{strategy.order.alert_message}}占位符,则警报消息将用此文本替换占位符。')
var string Message_open_short = input.string('OpenShort', '开空消息', group = '===================exit警报=======================', tooltip = '如果“创建警报”对话框的“消息”字段包含{{strategy.order.alert_message}}占位符,则警报消息将用此文本替换占位符。')
var string Message_close_long = input.string('CloseLong', '平多消息', group = '===================exit警报=======================', tooltip = '如果“创建警报”对话框的“消息”字段包含{{strategy.order.alert_message}}占位符,则警报消息将用此文本替换占位符。')
var string Message_close_short = input.string('CloseShort', '平空消息', group = '===================exit警报=======================', tooltip = '如果“创建警报”对话框的“消息”字段包含{{strategy.order.alert_message}}占位符,则警报消息将用此文本替换占位符。')
////////========开仓处理==========//////////////
if (Open_long or Open_short) and barstate.isconfirmed
Trade_vol := Trade_type == '合约' ? 1000 : 1000 / close // 设定交易量
// 开多
if Open_long
strategy.entry('Long'
, strategy.long
, qty = Trade_vol
, alert_message = Message_open_long // 订单成交时发送的警报内容
)
State_position := 1
// 开空
if Open_short
strategy.entry('Short'
, strategy.short
, qty = Trade_vol
, alert_message = Message_open_short // 订单成交时发送的警报内容
)
State_position := 0
Luego se usa el método {{strategy.order.alert_message}} en la configuración de la alerta
![[Ayuda] ¿Por qué no se pueden ejecutar los mensajes enviados por las estrategias de TradingView en FMZ?](/upload/asset/a85515d4f6386033782c.png)
La plataforma FMZ recibe mensajes, pero no abre facturas
![[Ayuda] ¿Por qué no se pueden ejecutar los mensajes enviados por las estrategias de TradingView en FMZ?](/upload/asset/a8c7304ce7d09cc7e583.png)
¿Qué es lo que está causando este problema y cómo se puede solucionar?
El siguiente es el código FMZ.
switch (command) {
case 'OpenLong': // 开多单
_OpenPositions(1, 0, positions, account, ticker);
break;
case 'OpenShort': // 开空单
_OpenPositions(0, 1, positions, account, ticker);
break;
case 'CloseLong': // TV信号平多
if (positions.length > 0) {
if (positions[0].Type === PD_LONG) {
_Cover_1(); // 快速平仓
_ResetVariables(); // 重置运算变量
_CalculateProfit(positions, account, ticker); // 统计收益
} else {
Log('当前持有空头仓位');
}
}
else {
Log('没有持仓,无法平多');
}
break;
case 'CloseShort': //TV信号平空
if (positions.length > 0) {
if (positions[0].Type === PD_SHORT) {
_Cover_1(); // 快速平仓
_ResetVariables(); // 重置运算变量
_CalculateProfit(positions, account, ticker); // 统计收益
} else {
Log('当前持有多头持仓');
}
} else {
Log('没有持仓,无法平空');
}
break;
default:
break;
}