金字塔决策交易系统

用户名  找回密码
 

微信登录

微信扫一扫,快速登录

帖子
查看: 3810|回复: 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

主题

1万

帖子

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

主题

1万

帖子

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)); //参数分别是,条件、手数、下单指令、下单指令为限价类指令时填写价格。


[PEL] 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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

本帖子中包含更多资源

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

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

举报

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

本版积分规则

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

GMT+8, 2025-8-9 10:20 , Processed in 0.119639 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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