金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 独975811

请教老师函数 TYPE 的应用

[复制链接]

24

主题

86

帖子

86

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-11-5 20:01 | 显示全部楼层
请老师再帮我改一下吧,我不知道哪里错了,测试不开仓。

Long:=CLOSE>MA4_H  and  MA4_H>ref(MA4_H,1)  AND  close >UPPER_H;//多头建仓条件 ;

Short:=CLOSE<MA4_H  and MA4_H<ref(MA4_H,1)  AND  close<LOWER_H;//空头建仓条件 ;

variable:n=0;

if n=0 then
begin
   buy(Long,SS,marketr); buyshort(Short,SS,marketr);
        n:=1;
END

if n=1 and TYPE(4) then
begin
        buy(Long,SS,marketr);//多头建仓
END

if n=1 and TYPE(2) then
BEGIN
        buyshort(Short,SS,marketr);//空头建仓
       
END       
回复

使用道具 举报

31

主题

7744

帖子

7754

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 09:03 | 显示全部楼层
TYPE(4)是上次信号是平仓
你一开始开仓有,但是不平仓会导致后面都不交易了啊
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

31

主题

7744

帖子

7754

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 09:04 | 显示全部楼层
n=0是一开始时候可以开仓,然后n=1以后要依靠开仓条件以及判断上一次是平多还是平空来决定

所以你必须有正常的平多和平空才行的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

24

主题

86

帖子

86

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-11-6 09:34 | 显示全部楼层
整个策略是有好多个周期的平仓条件的,我截取部分过来,老师帮我看看不开仓的问题在哪里,直接帮我改一下最好,谢谢

input:ss(1,1,100,1);
MA4:=MA(CLOSE,20);

MID:=MA(CLOSE,20);
UPPER:MID + 2*STD(CLOSE,20);
LOWER:MID - 2*STD(CLOSE,20);


MA4_H:=stkindi('','ma.ma4',0,5,0);

MA4_30m:=stkindi('','ma.ma4',0,4,0);

MA4_15m:=stkindi('','ma.ma4',0,3,0);

MA4_10m:=stkindi('','ma.ma4',0,18,0);

MA4_5m:=stkindi('','ma.ma4',0,2,0);

MA4_3m:=stkindi('','ma.ma4',0,17,0);

MA4_1m:=stkindi('','ma.ma4',0,1,0);

UPPER_H:=stkindi('','BOLL.UPPER',0,5,0);

LOWER_H:=stkindi('','BOLL.LOWER',0,5,0);

Long:=CLOSE>MA4_H  and  MA4_H>ref(MA4_H,1)  AND  close >UPPER_H;

Short:=CLOSE<MA4_H  and MA4_H<ref(MA4_H,1)  AND  close<LOWER_H;

variable:n=0;

if n=0 then
begin
        buy(Long AND HOLDING=0,SS,THISCLOSE); buyshort(Short AND HOLDING=0,SS,THISCLOSE);
        n:=1;
END

if n=1 and TYPE(4) then
begin
        buy(Long AND HOLDING=0,SS,THISCLOSE);
END

if n=1 and TYPE(2) then
BEGIN
        buyshort(Short AND HOLDING=0,SS,THISCLOSE);
       
END       

//多头平仓1

LongY:=MA4_H>CLOSE  AND  Holding>0;

if LongY then

begin

sell(SS,0,Limitr,c);

END

//多头平仓2

LongX:=AVGENTERPRICE<MA4_30m AND  MA4_30m>CLOSE AND  Holding>0;


if LongX then

begin

sell(SS,0,Limitr,c);

END



//空头平仓1

ShortY:=CLOSE>MA4_H AND  Holding<0;


if ShortY then

begin

sell(SS,0,Limitr,c);

END

//空头平仓2

ShortX:=AVGENTERPRICE>MA4_30m AND CLOSE>MA4_30m AND  Holding<0;


if ShortX then

begin

sell(SS,0,Limitr,c);

END
回复

使用道具 举报

31

主题

7744

帖子

7754

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 09:39 | 显示全部楼层
if n=0 and (Long or Short) then
begin
        buy(1,SS,THISCLOSE); buyshort(1,SS,THISCLOSE);
        n:=1;
END

第一次开仓改成这样,然后你平仓有些holding写错了啊,比如下面持仓小于0表示空头持仓,但是你执行的是平多指令,不知道你是持仓错还是命令错

ShortX:=AVGENTERPRICE>MA4_30m AND CLOSE>MA4_30m AND  Holding<0;


if ShortX then

begin

sell(SS,0,Limitr,c);

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

使用道具 举报

24

主题

86

帖子

86

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-11-6 09:52 | 显示全部楼层
哦,是命令写错了呢,低级错误。开仓问题也解决了,再次感谢老师。
回复

使用道具 举报

24

主题

86

帖子

86

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-11-6 10:11 | 显示全部楼层
为什么在一个方向还是反复开单呢?


variable:n=0;

if n=0 and (Long or Short) then
begin
        buy(1,SS,THISCLOSE); buyshort(1,SS,THISCLOSE);
        n:=1;
END


if n=1 and TYPE(4) then
begin
        buy(Long AND HOLDING=0,SS,THISCLOSE);
END

if n=1 and TYPE(2) then
BEGIN
        buyshort(Short AND HOLDING=0,SS,THISCLOSE);
       
END       

截图202411061011176054.png
回复

使用道具 举报

31

主题

7744

帖子

7754

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 10:14 | 显示全部楼层
把平仓语句都写到开仓语句前面
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

24

主题

86

帖子

86

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-11-6 10:21 | 显示全部楼层
不理解,能具体说说怎么调整吗?我把variable:n=0;后面这段放到程序代码最后面也没用啊。还是要把平仓部分代码复制到variable:n=0;这段哪里中间部分吗
回复

使用道具 举报

31

主题

7744

帖子

7754

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-6 10:21 | 显示全部楼层
就是平仓的代码都放在开仓代码前面

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 09:13 , Processed in 0.141294 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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