以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 后台版本下单问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=171811) |
-- 作者:临界天地 -- 发布时间:2019/8/27 9:42:47 -- 后台版本下单问题 下单出现漏单或不执行的情况,数据补充无误,程序无误(图表改后台,图表界面执行无误),应该是下单开平仓模块书写问题
if KD1 and tholding=0 then begin end
if KK1 and tholding=0 and KK1<>PK1 then begin |
-- 作者:FireScript -- 发布时间:2019/8/27 10:06:19 -- 说漏洞肯定要有一个明确的判断依据才行。 后台漏单这种,你是拿图表信号来确定它漏单的,还是怎么判断漏洞的。后台我们建议进行一些必要的调试输出,就是把开平仓条件的情况直接输出输出。参考debugfile函数。 [此贴子已经被作者于2019/8/27 10:08:55编辑过]
|
-- 作者:FireScript -- 发布时间:2019/8/27 10:11:20 -- 不过你这里代码书写上是有点问题。 tholding=1 ; 类似这种都是无效的。这函数是直接读取持仓情况的。你赋值肯定无效的。 另外如果要判断持仓什么的,建议用这2个函数: TBUYHOLDINGEX TSELLHOLDINGEX [此贴子已经被作者于2019/8/27 10:11:58编辑过]
|
-- 作者:临界天地 -- 发布时间:2019/8/27 10:23:31 -- 用申请全局变量的方式可以么 比如改成这样
globalvariable:a1=0; globalvariable:a2=0;
if KD1 and a1=0 then begin end
if KK1 and a2=0 and KK1<>PK1 then begin |
-- 作者:FireScript -- 发布时间:2019/8/27 10:31:54 -- a1=1 ; 改成 a1:=1; 其他几个地方也是。 你这里的思路我大致能看出来。用全局变量是可以的。不过 ORDERQUEUE 建议测试时候先不用这个,等代码逻辑处理好了再加上去进一步调试,以免ORDERQUEUE触发的一些特殊情况影响下单。 |
-- 作者:临界天地 -- 发布时间:2019/8/27 18:00:49 -- globalvariable:a1:=0; globalvariable:a2:=0;
if KD1 and a1:=0 then begin end
对否? |
-- 作者:临界天地 -- 发布时间:2019/8/27 18:04:41 -- if KD1 and a1:=0 and tHOLDING=0 then begin
用的多品种后台,哪种方法是对的 |
-- 作者:FireScript -- 发布时间:2019/8/28 8:57:37 -- if KD1 and a1=0 then begin end
改成上面这样。 a1=1这个是等于的判断 a1:=1 这个是赋值语句。 |
-- 作者:临界天地 -- 发布时间:2019/9/2 10:11:08 -- 图表程序改后台,模拟中出现问题:图表和后台的成交信号对不上。程序底稿模块一样,都是close走完k线后发单,
图表的开平模块是
if KD and HOLDING=0 then begin if KK and HOLDING=0 and KK<>PK then begin
改成后台之后是
GLOBALVARIABLE:a1=0;
GLOBALVARIABLE:a2=0; hand:=6000000/CLOSE/MULTIPLIER; if KD1 and a1=0 then begin tbuy(1 ,hand,mkt),ORDERQUEUE; a1:=1 ; end if PD1 and a1=1 and pd1<>kd1 then begin tSell( 1,hand,mkt),ORDERQUEUE; a1:=0 ; end if KK1 and a2=0 and KK1<>PK1 then begin tBUYSHORT(1 ,hand,mkt),ORDERQUEUE; a2:=1 ; end if PK1 and a2=1 then begin tSELLSHORT(1 ,hand,mkt) ,ORDERQUEUE; a2:=0 ; end
|
-- 作者:FireScript -- 发布时间:2019/9/2 11:27:30 -- 并不是等效的。图表是有历史信号的,而后台是没有的。而历史信号对图表下单是有影响的。 如果说当前运行程序化时候 图表程序化历史仓位刚好是0,这种巧合情况下你上面代码倒是差异不大。 但是如果图表历史信号导致历史有一个多头或者空头的虚拟持仓,那完全就是不一样的情况了。 只要涉嫌到仓位对信号有影响的,图表和后台差异就会体现出来。后台和图表 你至多只能对比不涉及仓位的信号。比如说金叉死叉信号,或者其他什么纯粹的指标计算,这些倒是能对比下,可是下单收到仓位影响的,其实是没发对比的。 |