// 简称: event_A(发送方)
// 名称: onevent练习
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
//此处添加参数
Vars
//此处添加变量
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
PrintClear();
}
OnReady()
{
Map<String,String> a;
a["期货代码"] = "rb888.SHFE";
PublishEvent("我的选股",a,"所有订阅者");
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
}
OnFill(FillRef ordFill)
{
Map<String,String> reverse;
reverse["标的"] = ordFill.symbol;
Print(TextMap(reverse));
If(ordFill.combOffset == Enum_Entry)
{
If(ordFill.side == Enum_Buy)
{
reverse["操作方向"] = "卖开";
PublishEvent("反向指标",reverse,"所有订阅者");
}
If(ordFill.side == Enum_Sell)
{
reverse["操作方向"] = "买开";
PublishEvent("反向指标",reverse,"所有订阅者");
}
}
If(ordFill.combOffset == Enum_Exit)
{
If(ordFill.side == Enum_Buy)
{
reverse["操作方向"] = "卖平";
PublishEvent("反向指标",reverse,"所有订阅者");
}
If(ordFill.side == Enum_Sell)
{
reverse["操作方向"] = "买平";
PublishEvent("反向指标",reverse,"所有订阅者");
}
}
}
// 简称: event_B
// 名称: onevent接收方
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
//此处添加参数
Vars
Array<Integer> ordids;
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
SubscribeEvent("我的选股");
SubscribeEvent("反向指标");
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
}
OnEvent(StringRef evtName, MapRef<String, String> evtValue)
{
If(evtName == "我的选股")
{
Print("代码"+evtValue["期货代码"]);
}
If(evtName == "反向指标")
{
If(evtValue["操作方向"]=="卖开")
{
A_SendOrderEx(evtValue["标的"],Enum_Sell,Enum_Entry,1,Q_BidPrice,ordids,"",A_GetOrderCreateSource);
Print("发单:卖开");
}
If(evtValue["操作方向"]=="买开")
{
A_SendOrderEx(evtValue["标的"],Enum_Buy,Enum_Entry,1,Q_AskPrice,ordids,"",A_GetOrderCreateSource);
Print("发单:买开");
}
If(evtValue["操作方向"]=="买平")
{
A_SendOrderEx(evtValue["标的"],Enum_Buy,Enum_Exit,1,Q_AskPrice,ordids,"",A_GetOrderCreateSource);
Print("发单:买平");
}
If(evtValue["操作方向"]=="卖平")
{
A_SendOrderEx(evtValue["标的"],Enum_Sell,Enum_Exit,1,Q_BidPrice,ordids,"",A_GetOrderCreateSource);
Print("发单:卖平");
}
}
}
上面是发出的程序,下面是接收的程序 。我在模拟帐号上运行event_A,在实盘上运行的event_B,在A中发布的"我的选股",在B中可以接收到,而我在A中发布的“反向指标”,在B中却无法执行,请问我的操作有什么问题吗?为什么没能成功,哦对了,我是手动在模拟账户下的单,我认为虽然是手动,但ONFILL应该也可以接收到信号吧,然后把接受到的信号通过发布publishEvent发布出去。请都是帮我看一下,到底是哪里出了问题,谢谢!!
你可以研究,但官网不参与教授如何反向跟单
👌
我说的模式
为啥不用?
只要加一行代码就行了。。。
有想法💪
不是不用,我还没研究明白,我理解的慢,容我反应一下😁
还请赐教,我是差在哪里了吗
是不是你说的订阅所有委托,加这一句?