金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 193|回复: 4

老师请看下,写的对吗

[复制链接]

144

主题

303

帖子

303

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
发表于 2026-1-2 16:35 | 显示全部楼层 |阅读模式

//超全局变量
GLOBALVARIABLE:zs:=0;
//开仓开条件
ma5:=ma(c,5);
ma10:=ma(c,10);
jcma:=cross(ma5,ma10);
csma:=cross(ma10,ma5);

str:=STKLABEL&'.'&FORMULANAME&'.zs';
//开仓
if jcma then begin
        tbuy(1,100,mkt);
        zs:=low;
        EXTGBDATASET(str,zs);//这个地方用zs,还是用low?
END

//止损
zs:=EXTGBDATA(str);
if tbuyholding(1)>0 and c<zs then begin
        tsell(1,0,mkt);
    zs:=0;
    EXTGBDATASET(str,0);
END

//止赢
if tbuyholding(1)>0  and csma then BEGIN
        tsell(1,0,mkt);
        zs:=0;
        EXTGBDATASET(str,0);
END             以上是一个带止损的完整交易系统,请老师看下写的对吗?      



补充内容 (2026-1-2 16:46):
问题:1,是否对,不对请改正。2、用extgbdataset记忆的止损价,是在电脑中记忆还是在软件中记忆,是永久记忆吗,软件重启或重新 加载,会读不到或记错止损价吗?3、在哪里查看运行的情况,即查看止损价记录的数据。

补充内容 (2026-1-2 16:48):
4、记录的这个止损价,不一定是当天的最低价,怎么才能记到当日的最低价,盘后记录可以吗,请写一个改正的方案代码
回复

使用道具 举报

2

主题

6010

帖子

6010

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-4 09:26 | 显示全部楼层
本帖最后由 资深技术05 于 2026-1-4 09:27 编辑

2个全局变量使用其中一个就行了。

[PEL] 复制代码
//开仓开条件
ma5:=ma(c,5);
ma10:=ma(c,10);
jcma:=cross(ma5,ma10);
csma:=cross(ma10,ma5);

str:=stklabel&'.'&formulaname&'.zs';
//开仓
if jcma and tbuyholdingex('','',4)=0 then begin
        tbuy(1,100,mkt);
        extgbdataset(str,low);//记录刚开仓时候K线的最低价,如果你是1分钟记录的不是1分钟最低价,如果是日线则是日线最低价
end

//止损
zs:=extgbdata(str);
if tbuyholdingex('','',1)>0 and c<zs then begin
    tsell(1,0,mkt);
    extgbdataset(str,0);
end

//止赢
if tbuyholdingex('','',1)>0 and csma then begin
        tsell(1,0,mkt);
        extgbdataset(str,0);
end   


这个记录的值是存在客户端内部,你换个客户端或者电脑是读取不到的。触发手工删除或者代码里重置,否则是不会消失的,包括重启之类操作都不影响的。



另外这个记录的最低价是当时的最低价,如果要变成当天日线收盘时候的最低价,那是没办法用这种方式处理的。只能回溯,之前已经给过这个方案了你可以翻下之前的帖子。

本帖子中包含更多资源

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

x
回复

使用道具 举报

144

主题

303

帖子

303

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2026-1-6 21:59 | 显示全部楼层

本帖最后由 资深技术05 于 2026-1-4 09:27 编辑


2个全局变量使用其中一个就行了。是指的你写的这个算是一个,删除的一个算是一个,对吗


补充内容 (2026-1-6 22:05):
我再写一个,系统你看用全局变量,用的对吗?
回复

使用道具 举报

144

主题

303

帖子

303

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2026-1-6 22:04 | 显示全部楼层
//超全局变量
GLOBALVARIABLE:zs:=0;
//开仓开条件
ma5:=ma(c,5);
ma10:=ma(c,10);
jcma:=cross(ma5,ma10);
csma:=cross(ma10,ma5);

str:=stklabel&'.'&formulaname&'.zs';
//开仓
if jcma and tbuyholdingex('','',4)=0 then begin
        tbuy(1,100,mkt);
zs:=low;
        //记录刚开仓时候K线的最低价,如果你是1分钟记录的不是1分钟最低价,如果是日线则是日线最低价
end

//止损
zs:=extgbdata(str);
if tbuyholdingex('','',1)>0 and c<zs then begin
    tsell(1,0,mkt);
    zs:=0;
end

//止赢
if tbuyholdingex('','',1)>0 and csma then begin
        tsell(1,0,mkt);
        zs:=0;
end    这样写对吧?,你给我写的那个系统,与我现在写的这个,超全局变量,你说的这二种用法。是这个意思吗?
回复

使用道具 举报

2

主题

6010

帖子

6010

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-7 09:10 | 显示全部楼层
2个全局变量 你只需要其中一个。你这种混杂在一起的 根本不行,直接乱套了。

[PEL] 复制代码
globalvariable:zs:=0;
//开仓开条件
ma5:=ma(c,5);
ma10:=ma(c,10);
jcma:=cross(ma5,ma10);
csma:=cross(ma10,ma5);


//开仓
if jcma and tbuyholdingex('','',4)=0 then begin
        tbuy(1,100,mkt);
zs:=low;
        //记录刚开仓时候k线的最低价,如果你是1分钟记录的不是1分钟最低价,如果是日线则是日线最低价
end

//止损
if tbuyholdingex('','',1)>0 and c<zs then begin
    tsell(1,0,mkt);
    zs:=0;
end

//止赢
if tbuyholdingex('','',1)>0 and csma then begin
        tsell(1,0,mkt);
        zs:=0;
end 
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 07:35 , Processed in 0.147147 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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