程序化交易交易所标准套利合约,比如SPD FG601&605,有一下几个问题麻烦老师确认:
1、是否只能使用图表交易函数(buy、sell等)?我测试A函数发单,图表信号发出后,A函数并没有打单。
2、A函数不支持吗?还是如果使用A函数,则必须分开两腿下单?
3、如果仅能使用图表交易函数(buy、sell等),成交监测如何做到?分开两腿用Position结构体跟踪吗?
测试ok了,此帖关闭
👌
😁
可以发 你合约填得对吗
监控另外想办法,因为持仓是分开的2个合约 不会与你加载的套利合约直接相关
我是直接图表引用的方式,比如data1加载了SPD FG601&605合约,价差达到一定的发单标准后,采用“Data1.A_SendOrder(Enum_Sell, Enum_Entry, Lots, a_price)”的模式发单,但实际账户并没有打单进来,是我的理解哪里有问题?
还是说您的这个“可以发 你合约填得对吗”回复,意思是我需要针对合约对分开两腿发单?我的理解对吗?
明天我试试
理论上应该可以
具体怎么样,只能说要看你提供的内容。
目前只能告诉你可以发单
我写段伪代码吧,这样也许可以更清楚的表达我想和您探讨的逻辑:
01 ////////////// 策略单元建立,共2个数据源
02 Data0设置价差合约日线数据(比如 SPD SA601&SA605.CZCE)
03 Data1设置价差合约1m线数据(比如 SPD SA601&SA605.CZCE)
04 ///////////// OnInit()加载数据
05 Data0.SetDataRange("1d"); // 语法格式不全,伪代码模拟
06 Data1.SetDataRange("1m"); // 语法格式不全,伪代码模拟
07 //////////// Onbar()
08 entry_spd = 0; // 交易价差初始化,不用在意初始化位置是否合适,仅展示代码逻辑
09 entry_spd = 达到建仓交易价差;
10 if entry_spd != 0 then // 触发交易的价差存在
11 Data1.A_SendOrder(Enum_Sell, Enum_Entry, Lots, a_price); // A_SendOrder发单
上述第11行代码就是我想与您沟通的重点,也就是对于标准套利合约(SPD SA601&SA605.CZCE),TBQ3平台是否支持A_SendOrder发单?由于我在测试的时候没有发单成功,如果TBQ3平台是支持A_SendOrder发单的,我就再排查其他逻辑问题,麻烦您。
补充一下:
1、上面所说的A函数,我是指的A_SendOrder这类发单函数。如果使用这类函数是否策略算法只能采用系统自带的demo_EventArbitrage算法?
2、如果使用A_SendOrder这类发单函数,会干扰到交易所标准套利合约的成交规则吗?(即交易所的双腿成交规则)