金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2664|回复: 14

大神们,求技术指导!收盘平仓和开仓价位防跳点

[复制链接]

47

主题

163

帖子

163

积分

等级: 免费版

注册:
2024-1-11
曾用名:
发表于 2024-1-21 19:26 | 显示全部楼层 |阅读模式
ma1:=ema((open+2*close+high+low)/5,3);
ma2:=ema((open+2*close+high+low)/5,8);
ma3:=ema((open+2*close+high+low)/5,18);
ma4:=ema((open+2*close+high+low)/5,34);
A:=ATAN((MA1/MA4-1)*100)*180/3.1415926;

VAR1:=(2*CLOSE+HIGH+LOW+3*OPEN)/7;
高抛: 80;
VAR2:=LLV(LOW,34);
VAR3:=HHV(HIGH,34);
K: EMA((VAR1-VAR2)/(VAR3-VAR2)*100,13);
D: EMA(K,3);
低吸: 20;
强弱分界: 50;
VAR4:=IF(CROSS(K,D),45,20);
VAR5:=IF(CROSS(D,K),55,80);
B:=ATAN((K/D-1)*100)*180/3.1415926,NODRAW;

kd:=A>=2 and B>=0;         //开多条件
pd:=B<0 AND A<=0 ;          //平多条件
kk:=A<=-2 and B<=0;          //开空条件
pk:=A>=0;         //平空条件

手数:=5;
//交易系统
平多:sell(pd,手数,market);
开多:buy(kd and holding=0,手数,market);
开空:buyshort(kk and holding=0,手数,market);
平空:sellshort(pk,手数,market);
DEBUGOUT(‘kd=%.0f’,kd);
DEBUGOUT(‘pd=%.0f’,pd);
DEBUGOUT(‘kk=%.0f’,kk);
DEBUGOUT(‘pk=%.0f’,pk);
TBUY(kd,1,LMT,C); //按照最新价限价开多
TSELL(pd,0,LMT,C);//按照最新价限价平多,0表示平掉全部持仓
TBUY(kk,1,LMT,C); //按照最新价限价开空
TSELL(pk,0,LMT,C);//按照最新价限价平空,0表示平掉全部持仓
//收盘前平仓
ct:CURRENTTIME;
if (ct>=142900 and ct<=142910) or (ct>=225900 and ct<=225910) or (ct>=022900 and ct<=022910) then
begin
tsell(1,0,mkt);
tsellshort(1,0,mkt);      
end

1、为什么收盘前平仓不了呢?
2、如果满足条件,开多单开单价位按照最新买2价开多单/开空单按照卖2价开空单,怎么写呢?
3、如果满足条件,平多单平单价位按照最新卖2价平多单/平空单按照买2价平空单,怎么写呢?

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-22 09:11 | 显示全部楼层
你是后台程序化还是图表程序化?你这个代码2种语法混杂在一起了都。

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

使用道具 举报

47

主题

163

帖子

163

积分

等级: 免费版

注册:
2024-1-11
曾用名:
 楼主| 发表于 2024-1-22 09:13 | 显示全部楼层
技术009 发表于 2024-1-22 09:11
你是后台程序化还是图表程序化?你这个代码2种语法混杂在一起了都。

后台程序化呢?
现在图表程序化每次都是按照最高点开仓,低点平仓,滑点超级大。不知道为什么。
回复

使用道具 举报

37

主题

9966

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-22 09:15 | 显示全部楼层
张恒 发表于 2024-1-22 09:13
后台程序化呢?
现在图表程序化每次都是按照最高点开仓,低点平仓,滑点超级大。不知道为什么。

那是因为你是市价指令委托的。market是图表的市价指令,LIMIT是限价指令。

后台的话直接把这部分图表的代码剔除即可。
//交易系统
平多:sell(pd,手数,market);
开多:buy(kd and holding=0,手数,market);
开空:buyshort(kk and holding=0,手数,market);
平空:sellshort(pk,手数,market);


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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-22 09:25 | 显示全部楼层
“ct:CURRENTTIME;
if (ct>=142900 and ct<=142910) or (ct>=225900 and ct<=225910) or (ct>=022900 and ct<=022910) then
begin
tsell(1,0,mkt);
tsellshort(1,0,mkt);      
end”

这段代码在图表程序化上无效。CURRENTTIME 只有最新值,没有历史值。这在图表模型上是不可以使用的。图表模型上 你只能使用time函数。




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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-22 09:28 | 显示全部楼层
“2、如果满足条件,开多单开单价位按照最新买2价开多单/开空单按照卖2价开空单,怎么写呢?
3、如果满足条件,平多单平单价位按照最新卖2价平多单/平空单按照买2价平空单,怎么写呢?”

这个操作 只在后台程序中支持,需要指定下单价格为限价 ,然后使用动态函数取盘口的价格。盘口价格用动态函数获取:https://www.weistock.com/docs/PE ... D%E6%95%B0%E7%BB%84
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

47

主题

163

帖子

163

积分

等级: 免费版

注册:
2024-1-11
曾用名:
 楼主| 发表于 2024-1-22 09:55 | 显示全部楼层
技术009 发表于 2024-1-22 09:28
“2、如果满足条件,开多单开单价位按照最新买2价开多单/开空单按照卖2价开空单,怎么写呢?
3、如果满足条 ...

大神,怎么改呢?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-22 09:58 | 显示全部楼层
不是已经说了吗 改成限价指令,用动态函数取盘口价格吗。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

47

主题

163

帖子

163

积分

等级: 免费版

注册:
2024-1-11
曾用名:
 楼主| 发表于 2024-1-22 11:27 | 显示全部楼层
技术009 发表于 2024-1-22 09:58
不是已经说了吗 改成限价指令,用动态函数取盘口价格吗。

次数:totaltrade,linethick0;
胜率:percentwin,linethick0;
连亏:maxseqloss,linethick0;
连赢:maxseqwin,linethick0;
当前持仓:holding,colorgray,linethick0;
当前资产:asset,noaxis,colorgray;

ma1:=ema((open+2*close+high+low)/5,3);
ma2:=ema((open+2*close+high+low)/5,8);
ma3:=ema((open+2*close+high+low)/5,18);
ma4:=ema((open+2*close+high+low)/5,34);
A:=ATAN((MA1/MA4-1)*100)*180/3.1415926;

VAR1:=(2*CLOSE+HIGH+LOW+3*OPEN)/7;
高抛: 80;
VAR2:=LLV(LOW,34);
VAR3:=HHV(HIGH,34);
K: EMA((VAR1-VAR2)/(VAR3-VAR2)*100,13);
D: EMA(K,3);
低吸: 20;
强弱分界: 50;
VAR4:=IF(CROSS(K,D),45,20);
VAR5:=IF(CROSS(D,K),55,80);
B:=ATAN((K/D-1)*100)*180/3.1415926,NODRAW;

kd:=A>=2 and B>=0;         //开多条件
pd:=B<0 AND A<=0 ;          //平多条件
kk:=A<=-2 and B<=0;          //开空条件
pk:=A>=0;         //平空条件

手数:=5;
//交易系统
DEBUGOUT(‘kd=%.0f’,kd);
DEBUGOUT(‘pd=%.0f’,pd);
DEBUGOUT(‘kk=%.0f’,kk);
DEBUGOUT(‘pk=%.0f’,pk);
TBUY(kd,1,DYNAINFO(29),C); //按照最新盘口买二价开多
TSELL(pd,0,DYNAINFO(32),C);//按照最新盘口卖二价平多,0表示平掉全部持仓
TBUY(kk,1,DYNAINFO(32),C); //按照最新盘口卖二价开空
TSELL(pk,0,,DYNAINFO(29),C);//按照最新盘口买二价平空,0表示平掉全部持仓
//收盘前平仓
ct:CURRENTTIME;
if (ct>=142900 and ct<=142910) or (ct>=225900 and ct<=225910) or (ct>=022900 and ct<=022910) then
begin
tsell(1,0,mkt);
tsellshort(1,0,mkt);      
end
还是不对呢?大神
回复

使用道具 举报

37

主题

9966

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-22 12:47 | 显示全部楼层
这类都不对,建议您对照函数说明再看下各个参数的意义

TBUY(kd,1,DYNAINFO(29),C); ==>TBUY(kd,1,lmt,DYNAINFO(29)); //参数分别是,条件、手数、下单指令、下单指令为限价类指令时填写价格。
截图202401221246293930.png

[PEL] 复制代码
ma1:=ema((open+2*close+high+low)/5,3);
ma2:=ema((open+2*close+high+low)/5,8);
ma3:=ema((open+2*close+high+low)/5,18);
ma4:=ema((open+2*close+high+low)/5,34);
A:=ATAN((MA1/MA4-1)*100)*180/3.1415926;

VAR1:=(2*CLOSE+HIGH+LOW+3*OPEN)/7;
高抛: 80;
VAR2:=LLV(LOW,34);
VAR3:=HHV(HIGH,34);
K: EMA((VAR1-VAR2)/(VAR3-VAR2)*100,13);
D: EMA(K,3);
低吸: 20;
强弱分界: 50;
VAR4:=IF(CROSS(K,D),45,20);
VAR5:=IF(CROSS(D,K),55,80);
B:=ATAN((K/D-1)*100)*180/3.1415926,NODRAW;

kd:=A>=2 and B>=0;         //开多条件
pd:=B<0 AND A<=0 ;          //平多条件
kk:=A<=-2 and B<=0;          //开空条件
pk:=A>=0;         //平空条件

手数:=5;
//交易系统

TBUY(kd,1,lmt,DYNAINFO(29)); //按照最新盘口买二价开多
TSELL(pd,0,lmt,DYNAINFO(32));//按照最新盘口卖二价平多,0表示平掉全部持仓
TBUY(kk,1,lmt,DYNAINFO(32)); //按照最新盘口卖二价开空
TSELL(pk,0,lmt,DYNAINFO(29));//按照最新盘口买二价平空,0表示平掉全部持仓
//收盘前平仓
ct:CURRENTTIME;
if (ct>=142900 and ct<=142910) or (ct>=225900 and ct<=225910) or (ct>=022900 and ct<=022910) then
begin
tsell(1,0,mkt);
tsellshort(1,0,mkt);      
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-6 06:00 , Processed in 0.162132 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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