金字塔决策交易系统

用户名  找回密码
 

微信登录

微信扫一扫,快速登录

帖子
查看: 5623|回复: 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] 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 | 显示全部楼层
如图,只限制同方向开一次单,不限制日内交易参数

本帖子中包含更多资源

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

x
回复

举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-16 15:43 | 显示全部楼层
止盈条件 你自己修改成你自己的额,我随便写的止盈条件 只是拿来调试而已。
[PEL] 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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-7-17 06:18 , Processed in 0.163931 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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