金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 50|回复: 5

请老师看下,并改下

[复制链接]

100

主题

220

帖子

220

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
发表于 2025-9-10 11:11 | 显示全部楼层 |阅读模式
//固定止损、止赢--20250909  期货

//1、多头、空头浮动盈亏
fyd:=(c-AVGENTERPRICE)*MULTIPLIER*ssd;//期货单品种,多头浮动止盈
fyk:=(AVGENTERPRICE-c)*MULTIPLIER*ssk;//期货单品种,空头浮动止盈

//如果多头持仓,且满足盈利条件,多头平仓
if tholding>0 and fyd>x then BEGIN
        tsell(1,0,mkt);
       
ENd

//如果空头持仓,且满足盈利条件,空头平仓
if tholding< 0 and fyd>x then BEGIN
        tsellshort(1,0,mkt);
       
ENd


//以下计算盈亏率  1、保证金、空头保证金
bzjd:=ssd*MULTIPLIER*DYNAINFO(  7)*TACCOUNT(41);//多头保证金
bzjk:=ssk*MULTIPLIER*DYNAINFO(  7)*TACCOUNT(42);//空头保证金

//2、多头盈亏率、空头盈亏率
ykjd:=fyd/bzjd*100;                 //多头盈亏率
ykjk:=fyk/bzjd*100;      //空头盈亏率
//止赢条件
zyd:=ykjd>d1;
zyk:=ykjk>k1;
//止损条件
zsd:=ykjd>d2;
zsk:=ykjk>k2;

//交易系统,止赢部分
//如果多头持仓,且满足平多条件,就平多
if tholding>0  and zyd then BEGIN
tsell(1,0,mkt);
end

//如果空头持仓,且满足平多条件,就平仓
if tholding<0  and zyk then BEGIN
tsellshort(1,0,mkt);
end

//交易系统,止损部分

//如果多头持仓,且满足止损条件,就平多
if tholding>0  and zsd  then BEGIN
tsell(1,0,mkt);
end

//如果空头持仓,且满足止损条件,就平仓
if tholding<0  and zsk then BEGIN
tsellshort(1,0,mkt);
end
{ssd:1 ;ssk:1 ;d1:5;k1:5;d2:5;x1500 这些参数是写在表中的,是可调的}
以上是单品种的固定止损止赢及盈亏率的交易系统 ,请老师看下是否正确,不对请改下。要求是与账中的相关数值能对应大体是一致的。谢谢。


回复

使用道具 举报

2

主题

5389

帖子

5389

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-9-10 11:28 | 显示全部楼层
文字思路说下,你这个代码乱七八糟的。而且如果是固定止盈止损这种,之前给你的代码不是已经包含了吗。
回复

使用道具 举报

100

主题

220

帖子

220

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2025-9-10 13:58 | 显示全部楼层
资深技术05 发表于 2025-9-10 11:28
文字思路说下,你这个代码乱七八糟的。而且如果是固定止盈止损这种,之前给你的代码不是已经包含了吗。

我是试着自己写一个交易系统,主要是熟悉下函数的应用,主要是看下单品种的浮动盈利、及期货保证金的写法,然后与账户实际持仓显示出来的数值大体一致。也不需要是记录,就弄一个简单交易系统。

补充内容 (2025-9-10 14:05):
{ssd:1 ;ssk:1 ;d1:5;k1:5;d2:5;x1500 这些参数是写在表中的,是可调的}---最后一个1500是钱数,其他是手数

补充内容 (2025-9-10 14:07):
{ssd:1 ;ssk:1 ;d1:5;k1:5;d2:5;x1500 这些参数是写在表中的,是可调的}  最后一个是钱数,其他是都是手数
回复

使用道具 举报

2

主题

5389

帖子

5389

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-9-10 14:04 | 显示全部楼层
在我之前提供的代码中:

多浮盈百分比:=100*TOPENPROFITEX('','',1,0)/TMARGINEX('','',1,0);
空浮盈百分比:=100*TOPENPROFITEX('','',2,0)/TMARGINEX('','',2,0);



TOPENPROFITEX  获取具体品种的浮盈,TMARGINEX获取保证金。仅仅需要这2个函数就行了。你甚至不需要自己使用均价去计算浮盈之类的。上面计算的是账户栏的盈亏百分比,你如果要具体金额直接 TOPENPROFITEX  函数就搞定了。

当然如果需要基于均价的百分比:使用TAVGENTERPRICEEX2 函数获取指定方向/品种的 持仓均价,再使用最新价C 进行计算即可。

回复

使用道具 举报

100

主题

220

帖子

220

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2025-9-10 14:12 | 显示全部楼层
资深技术05 发表于 2025-9-10 14:04
在我之前提供的代码中:

多浮盈百分比:=100*TOPENPROFITEX('','',1,0)/TMARGINEX('','',1,0);

('','',1,0) --函数中一有这个就不太明白了。你这一学,又明白了一点。谢谢。
回复

使用道具 举报

100

主题

220

帖子

220

积分

Rank: 4

等级: 专业版

注册:
2025-5-24
曾用名:
 楼主| 发表于 2025-9-10 14:43 | 显示全部楼层
106325 发表于 2025-9-10 14:12
('','',1,0) --函数中一有这个就不太明白了。你这一学,又明白了一点。谢谢。

就是要用指定账户的这个函数,谢谢。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-14 06:14 , Processed in 0.149683 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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