金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4997|回复: 19

限制开仓次数

[复制链接]

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2023-2-16 11:57 | 显示全部楼层 |阅读模式
//您好,限定一个同方向开仓信号只交易一次,止赢平仓之后不开仓,等待下一个信号开仓,用哪个代码,麻烦老师修改一下代码
VARIABLE:NUM=0;                           
CS:=1;   //    限定一个同方向开仓信号只交易一次                                       
MA5:=MA(CLOSE, 5);
MA20:=MA(CLOSE, 20);
COND1:=MA5>MA20;
COND2:=MA5<MA20;

IF COND2 AND HOLDING>0 THEN SELL(1,1,MARKET);     //平多
IF COND1 AND HOLDING=0 AND NUM<CS THEN             //开多
BEGIN
    BUY(1,1,MARKET);
    NUM:=NUM+1;
END
IF COND1 AND HOLDING<0  THEN sellshort (1,1,MARKET);//平空
IF COND2 AND HOLDING=0 AND NUM<CS THEN buyshort(1,1,MARKET); //开空

IF TIME=CLOSETIME(0) THEN NUM:=0;            

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-16 13:07 | 显示全部楼层
"等待下一个信号开仓" 这里是指方向信号?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-16 13:12 | 显示全部楼层
是的,例如开多仓之后,达到止赢平仓之后,不在开多,等待下一个信号再开空单
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-16 13:20 | 显示全部楼层
简单的方式是用2个全局变量分别控制多空。

[PEL] 复制代码
VARIABLE:NUM1=0,NUM2:=0;                           
CS:=1;   //    限定一个同方向开仓信号只交易一次                                       
MA5:=MA(CLOSE, 5);
MA20:=MA(CLOSE, 20);
COND1:=MA5>MA20;
COND2:=MA5<MA20;

IF COND2 AND HOLDING>0 THEN SELL(1,1,MARKET);     //平多
IF COND1 AND HOLDING=0 AND NUM1<CS THEN             //开多
BEGIN
    BUY(1,1,MARKET);
    NUM1:=NUM1+1;
END
IF COND1 AND HOLDING<0  THEN sellshort (1,1,MARKET);//平空
IF COND2 AND HOLDING=0 AND NUM2<CS THEN
BEGIN 
buyshort(1,1,MARKET); //开空
NUM2:=NUM2+1;
END 
IF TIME=CLOSETIME(0) THEN 
BEGIN
NUM1:=0;
NUM2:=0;   
END 
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-16 13:27 | 显示全部楼层
技术009 发表于 2023-2-16 13:20
简单的方式是用2个全局变量分别控制多空。

[mw_shl_code=pel,true]VARIABLE:NUM1=0,NUM2:=0;           ...

谢谢
回复

使用道具 举报

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-16 15:31 | 显示全部楼层
如图,只限制同方向开一次单,不限制日内交易参数
1.png
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-16 15:43 | 显示全部楼层
止盈条件 你自己修改成你自己的额,我随便写的止盈条件 只是拿来调试而已。
[PEL] 复制代码
variable:num:=0;                           
                                      
ma5:=ma(close, 5);
ma20:=ma(close, 20);
cond1:=ma5>ma20;
cond2:=ma5<ma20;
 
if cond2 and holding>0 then sell(1,1,market);     //平多
if cond1 and holding=0 and num>=0 then             //开多
begin
    buy(1,1,market);
end
if cond1 and holding<0  then sellshort (1,1,market);//平空
if cond2 and holding=0 and num<=0 then
begin
buyshort(1,1,market); //开空

end


if openprofitper>=5 and  holding>0 then 
begin
多止盈:sell(1,holding,market);        
num:=-1;
end

if openprofitper>=5 and  holding<0 then 
begin
空止盈:sellshort(1,holding,market);        
num:=1;
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-21 15:52 | 显示全部楼层
//老师,我加个止损,为什么有时候平空之后没有开多,平多之后没有开空,哪里错了,请帮我修改,谢谢
//-------------------- 百分之止赢 ------------------图表玻璃5分钟周期
if openprofitper>=1.70 and  holding>0 then
begin
多止盈:sell(1,holding,market);        
num:=-1;
end
//-------------------  多单止损  ------------------------------------------------

if openprofitper<-0.50 and  holding>0 then
begin
多止损:sell(1,holding,market),FONTSZUP2;   
num:=-1;
end

if openprofitper>=1.70 and  holding<0 then//0.7大概30个点
begin
空止盈:sellshort(1,holding,market) ,FONTSZUP2;     
num:=1;
end
//------------------  空单止损  --------------------------------------------------
if openprofitper<-0.50 and  holding<0 then//0.7大概30个点
begin
空止损:sellshort(1,holding,market);        
num:=1;
end  
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-21 15:59 | 显示全部楼层
你只是止盈后不同向开仓,你这里止损  你没必要重置全局变量为反向的值,重置为初始值就行了。

//-------------------- 百分之止赢 ------------------图表玻璃5分钟周期
if openprofitper>=1.70 and  holding>0 then
begin
多止盈:sell(1,holding,market);        
num:=-1;
end
//-------------------  多单止损  ------------------------------------------------

if openprofitper<-0.50 and  holding>0 then
begin
多止损:sell(1,holding,market),FONTSZUP2;   
num:=0;
end

if openprofitper>=1.70 and  holding<0 then//0.7大概30个点
begin
空止盈:sellshort(1,holding,market) ,FONTSZUP2;     
num:=1;
end
//------------------  空单止损  --------------------------------------------------
if openprofitper<-0.50 and  holding<0 then//0.7大概30个点
begin
空止损:sellshort(1,holding,market);        
num:=0;
end  

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

使用道具 举报

7

主题

38

帖子

48

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-21 16:00 | 显示全部楼层
技术009 发表于 2023-2-21 15:59
你只是止盈后不同向开仓,你这里止损  你没必要重置全局变量为反向的值,重置为初始值就行了。

//------ ...

谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 18:58 , Processed in 0.159562 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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