金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 146|回复: 9

帮忙解决一个买开单问题

[复制链接]

40

主题

339

帖子

339

积分

Rank: 4

等级: 专业版

注册:
2025-9-29
曾用名:
发表于 2026-10-19 13:34 | 显示全部楼层 |阅读模式
我想实现一天只买开一次,请您帮我看看这样写代码可以吗?
d1:EXTGBDATA(STKLABEL);

if KD and date>d1 and TBUYHOLDINGEX('','',2)=0 and 可下单数>=10 and tisprvremain(1)=0 and tisremainex(1,'',STKLABEL)=0 then  
BEGIN            
    tbuy(1,可下单数,LMT,买价);
    EXTGBDATASET(STKLABEL,date);
END

止损条件:= TOPENPROFITPER<-SZ;

if TBUYHOLDINGEX('','',1)>0 and tisprvremain(2)=0 and tisremainex(2,'',STKLABEL)=0 and 止损条件 then
BEGIN
    tsell(1,0,LMT,卖价);   // 平多仓  
    EXTGBDATASET(STKLABEL,date);
END

回复

使用道具 举报

1

主题

381

帖子

381

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2026-10-19 13:46 | 显示全部楼层
[PEL] 复制代码
if KD and EXTGBDATA(STKLABEL&'CS')<1 and TBUYHOLDINGEX('','',2)=0 and 可下单数>=10 and tisprvremain(1)=0 and tisremainex(1,'',STKLABEL)=0 then  
BEGIN           
    tbuy(1,可下单数,LMT,买价);
    EXTGBDATASET(STKLABEL&'CS',1);//开仓次数设为1
END
//多仓为0,且是当天第一根K线,赋值为0,允许开仓
IF (TSELLHOLDINGEX('','',2)+TGLOBALSUBMITEX(3,'','',0))=0 AND TODAYBAR=1 THEN BEGIN
   EXTGBDATASET(STKLABEL&'CS',0);      //次数标识赋值为0
END
回复

使用道具 举报

40

主题

339

帖子

339

积分

Rank: 4

等级: 专业版

注册:
2025-9-29
曾用名:
 楼主| 发表于 2026-10-19 15:45 | 显示全部楼层
资深技术07 发表于 2026-10-19 13:46
[mw_shl_code=pel,true]if KD and EXTGBDATA(STKLABEL&'CS')=10 and tisprvremain(1)=0 and tisremainex(1, ...

EXTGBDATASET(STKLABEL&'CS',1)请问这个CS是什么,有什么作用?
还有直接用上面的的代码就能代替我前面的的代码吗?止损下面不用再加“EXTGBDATASET(STKLABEL,date);”这个了吗?
回复

使用道具 举报

1

主题

381

帖子

381

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2026-10-19 16:04 | 显示全部楼层
就是全局变量名称哦,可以自定义的,您原来是用品种代码作为全局变量,容易重复哦,所以价格CS(次数拼音首字母)

可以替代的,不用再加。

这个是当天第一根K线会检测是否有持仓,如果没有持仓,就给全局变量赋值为0,允许开仓
回复

使用道具 举报

40

主题

339

帖子

339

积分

Rank: 4

等级: 专业版

注册:
2025-9-29
曾用名:
 楼主| 发表于 2026-10-19 16:31 | 显示全部楼层
资深技术07 发表于 2026-10-19 16:04
就是全局变量名称哦,可以自定义的,您原来是用品种代码作为全局变量,容易重复哦,所以价格CS(次数拼音首 ...


可我这个逻辑不是看有没有持仓啊。我想要实现的是:当天仅发出一次开仓指令。比如:当天早上满足开仓条件在第一个五分钟k过后发出了买入指令,但是没有成交就自动撤单了。后面即使再次满足开仓条件也不再发出开仓指令了。
回复

使用道具 举报

1

主题

381

帖子

381

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2026-10-19 16:36 | 显示全部楼层
那就用您一楼的吧,看起来满足您的逻辑
回复

使用道具 举报

40

主题

339

帖子

339

积分

Rank: 4

等级: 专业版

注册:
2025-9-29
曾用名:
 楼主| 发表于 2026-10-19 16:57 | 显示全部楼层
资深技术07 发表于 2026-10-19 16:36
那就用您一楼的吧,看起来满足您的逻辑

哦,那一楼的代码可以用是吧?
我是当天开仓当天平仓,也就是说如果出现止损是不是说明已经开过仓了?那止损部分的“EXTGBDATASET(STKLABEL,date);”这个代码是不是可以不用再保留了?
回复

使用道具 举报

1

主题

381

帖子

381

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2026-10-19 17:15 | 显示全部楼层
是的,按照您的逻辑,不需要保留。
因为用到了date函数,请在金字塔时区下,使用。(金字塔时区下,夜盘品种在周五晚上DATE返回下周一的日期,即交易日日期)

金字塔时区,使用说明,供您参考:https://www.weistock.com/docs/HE ... 4%E6%97%B6%E5%8C%BA
回复

使用道具 举报

40

主题

339

帖子

339

积分

Rank: 4

等级: 专业版

注册:
2025-9-29
曾用名:
 楼主| 发表于 2026-10-20 11:24 | 显示全部楼层
资深技术07 发表于 2026-10-19 17:15
是的,按照您的逻辑,不需要保留。
因为用到了date函数,请在金字塔时区下,使用。(金字塔时区下,夜盘品 ...

如果按照我一楼的逻辑您看一下我的这样写能实现一天只开一次仓吗?
d1:EXTGBDATA(STKLABEL);
        //平仓逻辑
if PD and TBUYHOLDINGEX('','',1)>0 and tisprvremain(2)=0 and tisremainex(2,'',STKLABEL)=0 then//and tisprvremain(2)=0 and tisremainex(2,'','')=0tisprvremain(2)=0 and tisremainex(2,'',STKLABEL)=0
    tsell(1,0,LMT,卖价);
        //开仓逻辑
if KD and date>d1 and TBUYHOLDINGEX('','',2)=0 and 可下单数>=1 and tisprvremain(1)=0 and tisremainex(1,'',STKLABEL)=0 then  
BEGIN
    tbuy(1,可下单数,LMT,买价);  //可下单数
    EXTGBDATASET(STKLABEL,date);
END
回复

使用道具 举报

1

主题

381

帖子

381

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2026-10-20 11:31 | 显示全部楼层
可以的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-23 02:41 , Processed in 0.115899 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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