金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3590|回复: 9

后台模型频繁交易,麻烦对照图形评估后台模型是否规范

[复制链接]

4

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2022-1-6
曾用名:
发表于 2022-10-13 13:36 | 显示全部楼层 |阅读模式

信号图:螺纹钢15分钟周期,9月27号系统显示开多信号,最近一直持有多单。但是从后台记录上可以看出,平均每走完一个15分钟K线,就会执行开多,平多。但是从信号图上来看,应该是一直持有多单的。
最后面附上代码,供检查。






INPUT:Qty(1,1,10,1),Length(200,1,500,1),pAtrPoint(35,1,500,1);
VARIABLE:vMarketPosition := 0,vBarSinceEntry:=0,vQty:=0,vPreQty:=0,vEntryPrice:=0,vExitLongPrice:=0,vExitShortPrice:=0,vStopProfitLong:=0,vStopProfitShort:=0;
VARIABLE : _DEBUG = 1 ;                                        //是否输出前台交易指令
VARIABLE : _TDEBUG = 1 ;                                //是否输出后台交易指令
VARIABLE : _DEBUGOUT = 1 ;                                //是否输出后台交易的调试信息

//采用全局变量保存最后一根K线的计算状态
STR_EnterBarPos :=STRCAT(STKLABEL,'ENTRYBARPOS') ; // 开仓Bar历时
STR_ExitBarPos :=STRCAT(STKLABEL,'EXITBARPOS') ;   // 平仓Bar历时
STR_PreEntryPrice:=STRCAT(STKLABEL,'PREENTRYPRICE') ; // 开仓价格
STR_vQty:=STRCAT(STKLABEL,'vQty') ;   // 开仓手数
STR_vMarketPosition:=STRCAT(STKLABEL,'vMarketPosition') ; // 持仓方向
STRPREN:=STRCAT(STKLABEL,'PREN') ;

vBarMA := (HIGH + LOW + CLOSE *2) / 4;
vUpLine : HHV(vBarMA * 2 - LOW,Length);
vDownLine : LLV(vBarMA * 2 - HIGH,Length);


//恢复上一秒计算时保存的数据
//如果记录的进场BARPOS和当前的相等,说明上一个进场信号也是最后一根K线发出的。               
IF EXTGBDATA(STR_EnterBarPos) = BARPOS THEN BEGIN
        vPreEntryPrice := EXTGBDATA(STR_PreEntryPrice) ;
        vQty := EXTGBDATA(vQty) ;
        vMarketPosition := EXTGBDATA(STR_vMarketPosition) ;
END        
      
contract:=STKLABEL();

KD :=HIGH >= REF(vUpLine,1); // 多头条件
KK := LOW <= REF(vDownLine,1);//空头条件

vEntryLongPrice := MAX(OPEN,REF(vUpLine,1));
vEntryShortPrice := MIN(OPEN,REF(vDownLine,1));
// 开仓
IF  KD  THEN BEGIN
        IF         vMarketPosition = 0 THEN BEGIN
                TBuy(_TDEBUG,Qty,MKT,0,0,'',contract),ORDERQUEUE; //买开多单
                vMarketPosition := 1;
                vBarSinceEntry := 0;
                EXTGBDATASET(STR_EnterBarPos,BARPOS);
                EXTGBDATASET(STR_vMarketPosition,vMarketPosition);
                EXTGBDATASET(STR_PreEntryPrice,vEntryLongPrice);

        END
END
IF  KK  THEN BEGIN
        IF vMarketPosition = 1 THEN BEGIN
                TSell(_TDEBUG,Qty,MKT,0,0,'',contract),ORDERQUEUE;
                vMarketPosition := 0;
                EXTGBDATASET(STR_vMarketPosition,vMarketPosition) ;      
        END
END

STICKLINE(((vMarketPosition>0) and  (CLOSE>=OPEN)),HIGH,LOW,1,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and  (CLOSE>=OPEN)),CLOSE,OPEN,10,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and  (CLOSE<OPEN)),HIGH,LOW,1,0,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition>0) and  (CLOSE<OPEN)),CLOSE,OPEN,10,1,COLORMAGENTA),COLORFF00FF;
STICKLINE(((vMarketPosition<0) and  (CLOSE<OPEN)),HIGH,LOW,1,0,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and  (CLOSE<OPEN)),CLOSE,OPEN,10,1,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and  (CLOSE>=OPEN)),HIGH,LOW,1,0,COLORBLUE),COLORFF0000;
STICKLINE(((vMarketPosition<0) and  (CLOSE>=OPEN)),CLOSE,OPEN,10,0,COLORBLUE),COLORFF0000;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-10-13 13:41 | 显示全部楼层
后台策略的问题只能通过debugfile调试输出才能定义。和图表对比就是刻舟求剑,方法就不对。
其次,你上面的策略中使用ext全局变量。ext全局变量作用于整个金字塔。你图表后台各运行一份。自然会存在互相干扰的情况。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2022-1-6
曾用名:
 楼主| 发表于 2022-10-13 13:52 | 显示全部楼层
技术006 发表于 2022-10-13 13:41
后台策略的问题只能通过debugfile调试输出才能定义。和图表对比就是刻舟求剑,方法就不对。
其次,你上面 ...

同一个模型,监控多品种,ext全局变量也会互相影响吗?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-13 13:55 | 显示全部楼层
从下单条件变量KD,KK 来看,这2个条件 今天应该是不满足的才对的。13号应该是开多,平多都没有满足才对的。

你是否调整过参数之类的呢。亦或者改过代码 但是没有重现启动程序化,以至于修改没生效。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-13 13:56 | 显示全部楼层
本帖最后由 技术009 于 2022-10-13 14:00 编辑

你本身这里 你全局变量 就拼接了品种代码在里面了。不同品种不会干扰,前提是你都只在后台里加载,前面那种你加载在图上 必然有干扰的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-10-13 13:56 | 显示全部楼层
本帖最后由 技术006 于 2022-10-13 13:58 编辑

当然。ext全局变量,只要操作的变量名相同,就会是公共的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2022-1-6
曾用名:
 楼主| 发表于 2022-10-13 14:10 | 显示全部楼层
技术009 发表于 2022-10-13 13:56
你本身这里 你全局变量 就拼接了品种代码在里面了。不同品种不会干扰,前提是你都只在后台里加载,前面那种 ...

后台很多公式,但是变量名都只区分了品种,每区间各个公式,是不是需要再次区分不同公式名,以防止不同公式之间互相干扰?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-13 14:14 | 显示全部楼层
如果是你说的这种情况,那么干扰是不可避免的了。你可能需要进一步处理了。另外图表上加载的部分,请不要涉及到全局变量的代码部分了,你可以只在图上加载纯指标计算的部分比较好。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2022-1-6
曾用名:
 楼主| 发表于 2022-10-13 14:29 | 显示全部楼层
技术009 发表于 2022-10-13 14:14
如果是你说的这种情况,那么干扰是不可避免的了。你可能需要进一步处理了。另外图表上加载的部分,请不要涉 ...

因为有多套后台系统同时运行,那么对每套系统内部的变量都做区别很是麻烦,有没有更简便的后台多策略运行模组解决方案?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-13 14:37 | 显示全部楼层
如果 你A策略,B策略 .....都使用了同名的全局变量情况,且交易品种有相同的品种。这种情况下没有其他好的方式了,你只能 增加一个公式名称来做区分了。
FORMULANAME  可以直接用这个函数获取公式名,公式名称本身是绝对不会同名的。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-21 16:59 , Processed in 0.182501 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表