金字塔决策交易系统

用户名  找回密码
 

微信登录

微信扫一扫,快速登录

帖子
查看: 671|回复: 1

盈利加仓的程序编写

[复制链接]

39

主题

266

帖子

266

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
发表于 2025-3-24 09:35 | 显示全部楼层 |阅读模式
盈利加仓的程序编写,第一次开仓手数1手,平仓后若盈利则第二次开仓手数开2手,若盈利则第三次开仓手数开3手,最多到6手,6手后仍然盈利以后也是开仓6手。只要有一次亏损,则下一次开仓为1手。我写的程序测试过,好像不能完全判定是否盈利,请老师帮我检查下程序是代码顺序不对还是代码错误?帮我改正下


手数:=1;
ariable:num:=0;
cs:=5;//加仓次数上限

开多条件:=
开空条件:=
//交易系统
if HOLDING=0 THEN  BEGIN
         BUY(开多条件 ,手数+num,LIMIT,OPEN);
         BUYSHORT(开空条件 ,手数+num,LIMIT,OPEN);  
END

平多条件:=
平空条件:=

if HOLDING>0  THEN BEGIN
         SELL(平多条件1,HOLDING,market);
         ifNUMPROFIT(1)>0 then   num:=num+1;
         if NUMPROFIT(1)<=0 then  num:=0;         
END
if HOLDING<0  THEN BEGIN
   SELLSHORT(平空条件1 ,HOLDING,market);
   if NUMPROFIT(1)>0 then  num:=num+1;
   if NUMPROFIT(1)<=0 then  num:=0;           
END
清仓时间:=TIME>=183000 and time<=183100;//1430分清仓
SELL(1,HOLDING,LIMITR,CLOSE);//
SELLSHORT(1,HOLDING,LIMITR,CLOSE); //
END
if num=cs then num:=0;//连赢CS次数后,重置盈利次数为0.手数恢复默认值
         
持仓:holding;

回复

举报

2

主题

5243

帖子

5243

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-3-24 10:00 | 显示全部楼层
1.涉及到全局变量控制的if条件,必须是完整的条件。否则容易 交易语句没触发,但是全局变量已经重新赋值了
2.num只在亏损时候重置就行。达到最大 上限不用管(如果需要达到最大手数后 重置手数 那可以重置),下单时候取最小值处理就可以控制手数不超过6手。
[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
32
33
34
35
36
37
38
39
40
41
手数:=1;
variable:num:=0;
cs:=5;//加仓次数上限
 
开多条件:=c>o;
开空条件:=c<o;
//交易系统
if holding=0 then 
begin
buy(开多条件 ,min(cs+手数,手数+num),limit,open);
buyshort(开空条件 ,min(cs+手数,手数+num),limit,open); 
end
 
平多条件:=cross(ma(c,3),c);
平空条件:=cross(c,ma(c,5));
 
if holding>0 and 平多条件 then begin
 sell(1,holding,market);
if numprofit(1)>0  then  num:=num+1;
if numprofit(1)<=0 then  num:=0;        
end
 
if holding<0 and 平空条件  then begin
   sellshort(1,holding,market);
   if numprofit(1)>0  then  num:=num+1;
   if numprofit(1)<=0 then  num:=0;          
end
 
清仓时间:=time>=183000 and time<=183100;//14点30分清仓
if 清仓时间 and holding<>0 then
begin
sell(1,holding,limitr,close);//
sellshort(1,holding,limitr,close); //
if numprofit(1)>0 then  num:=num+1;
if numprofit(1)<=0 then  num:=0
end
 
 
最近一次盈亏:NUMPROFIT(1);
连赢次数:num;
持仓:holding;
回复

举报

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

本版积分规则

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

GMT+8, 2025-8-13 18:05 , Processed in 0.127545 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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