金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4373|回复: 7

程式化交易问题

[复制链接]

21

主题

143

帖子

143

积分

等级: 免费版

注册:
2022-1-11
曾用名:
发表于 2022-3-29 15:41 | 显示全部楼层 |阅读模式
我每次打开程式化交易的时候都会自动根据信号补仓,这个有办法不补仓吗?就是取消重复进场,是不是把这个√去掉就好了
截图202203291541111747.png
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-3-29 15:49 | 显示全部楼层
是的。你去掉勾选就行了。这个是针对最近的一个历史K信号的处理。因为有时候走完K交易, 刚好是下个交易开盘这种情况,所以才有这个设置存在的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

143

帖子

143

积分

等级: 免费版

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-3-29 17:22 | 显示全部楼层
//反转2.2.2
VARIABLE:kk=0;
VARIABLE:kd:=0;
VARIABLE:mypreds_6:=0;
VARIABLE:mypregs_6:=0;
VARIABLE:mypreds_61:=0;
VARIABLE:mypregs_61:=0;
VARIABLE:mypreggs_6:=0;
VARIABLE:mypredds_6:=0;
VARIABLE:mypreggs_61:=0;
VARIABLE:mypredds_61:=0;


i:=BARPOS;

mynums_6_kd:=0;
mynums_6:=0;




//开空
for j=i-2 downto 1 do
BEGIN
        if mynums_6=1.75 and GGG1[j]>0 and GGG1[j]<mypreggs_6 then begin mynums_6:=2;end else if mynums_6=1.75 and GGG1[j]>0 and GGG1[j]>=mypreggs_6 then break;
        if mynums_6=1.5 and GG1[j]>0 and GG1[j]<mypreggs_6 then begin mynums_6:=1.75;mypreggs_61:=GG1[j];end else if mynums_6=1.5 and GG1[j]>0 and GG1[j]>=mypreggs_6 then break;
        if mynums_6=1 and GG1[j]>0 then begin mynums_6:=1.5;mypreggs_6:=GG1[j];end;
        if mynums_6=0.5 and DD1[j]>0 then begin mynums_6:=1; mypredds_6:=DD1[j]; end;
        if mynums_6=0.5 and GG1[j]>0 then break;
        if mynums_6=0 and mythisG[j]>0 then begin mynums_6:=0.5;end;
end
这是我开仓的代码,想问下离场也可以用这种编辑模式吗,我发现编辑出来的结果有问题,请问是不是无法编辑离场的情况。
下面是平仓的代码,还请指点一下

if holding<0 and kk=1 and ENTERPRICE<h then
begin
for j=i-2 downto 1 do
        begin
                if mythisG[j]>0 then
                begin
                        if  mythisG[j]<h then
                        begin
                        kk:=0;
                        pk1:=1;
                        end
                break;
                end
        end
end
else        
        for j=i-2 downto 1 do
        begin
                if QGG[j]>0 then
                begin
                        if  QGG[j]+0.5<h then
                        begin
                        kk:=0;
                        pk3:=1;
                        end
                break;
                end
        end

VARIABLE:kk=0;
VARIABLE:kd:=0;
VARIABLE:mypreds_9:=0;
VARIABLE:mypregs_9:=0;
VARIABLE:mypreds_91:=0;
VARIABLE:mypregs_91:=0;
i:=BARPOS;
mynums_9_kd:=0;
mynums_9:=0;

for j=i-2 downto 1 do
BEGIN
        if mynums_9=2 and mypregs_9>=mypregs_91 then begin mynums_9:=3;end else if mynums_9=2 and mypregs_9<mypregs_91 then break;
        if mynums_9=1 and mythisG[j]>0 then begin mynums_9:=2;mypregs_91:=mythisG[j];end;
        if mynums_9=0 and mythisG[j]>0 then begin mynums_9:=1;mypregs_9:=mythisG[j];end;
end

//平仓
if mynums_9=3 and pk3 then begin 平空2:SELLSHORT(holding<0,0,LIMITR,QGG[j]+1),NOAXIS; kk:=0; end
回复

使用道具 举报

37

主题

9939

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-3-29 20:51 | 显示全部楼层
在金字塔的pel中,基本不会使用到数组和循环这种方式。如果写成你上面的形式,九成以上没有掌握pel的编程特性。

直接告知我们你想实现什么样的效果,我们尝试提供一段范例代码
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

143

帖子

143

积分

等级: 免费版

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-3-30 10:07 | 显示全部楼层
我想实现进场之后用DD离场,如果DD抬升了就用最近的那个DD离场
回复

使用道具 举报

21

主题

143

帖子

143

积分

等级: 免费版

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-3-30 10:08 | 显示全部楼层
就这种效果
截图202203301008432254.png
回复

使用道具 举报

21

主题

143

帖子

143

积分

等级: 免费版

注册:
2022-1-11
曾用名:
 楼主| 发表于 2022-3-30 10:10 | 显示全部楼层
//平多仓
if kd=1 and  holding>0 and ENTERPRICE>l then
begin
        for j=i-2 downto 1 do
        begin
                if mythisd[j]>0 then
                begin
                        if  mythisd[j]>l then
                        begin
                        kd:=0;
                        pd1:=1;
                        end
                break;
                end
        end
end
else
        for j=i-2 downto 1 do
        begin
                if DD1[j]>0 then
                begin
                        if  DD1[j]-1>l then
                        begin
                        kd:=0;
                        pd2:=1;
                        end
                break;
                end
        end


//平仓
if pd2 then  begin 平多:SELL(holding>0,0,LIMITR,DD1[j]-1.5),NOAXIS;  kd:=0; end

这是我的原先的代码,您看能怎么简便吗,不用循环
回复

使用道具 举报

37

主题

9939

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-3-30 10:52 | 显示全部楼层
你这种分段求取的需求,没办法简便。而且你这种交易思路类似zig,先不说效率问题,就是能不能交易都两说。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-26 09:37 , Processed in 0.151650 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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