金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2770|回复: 3

帮忙看看这个程序

[复制链接]

8

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2021-6-24
曾用名:
发表于 2021-7-5 18:29 | 显示全部楼层 |阅读模式
BPK:cross(ma(c,20),ma(c,30));
SPK:cross(ma(c,30),ma(c,20));
lots:=4;

IF holding<=0 and BPK THEN
        BEGIN
    sellshort(holding<0,0,marketr);  //卖平空单
    Buy(holding=0,lots,marketr); //买开多单
    nn:=1;
        END

IF  holding>=0 and SPK THEN
        BEGIN
    sell(holding>0,0,marketr);  //买平多单
    buyShort(holding=0,lots,MARKETr);//卖开空单
    nn:=1;
        END
这段代码是双均线开平,没问题(交易记录见图1)。我是想当收益超过1%,平掉一般的仓位  加了如下代码:
BPK:cross(ma(c,20),ma(c,30));
SPK:cross(ma(c,30),ma(c,20));
lots:=4;

IF holding<=0 and BPK THEN
        BEGIN
    sellshort(holding<0,0,marketr);  //卖平空单
    Buy(holding=0,lots,marketr); //买开多单
    nn:=1;
        END

IF  holding>=0 and SPK THEN
        BEGIN
    sell(holding>0,0,marketr);  //买平多单
    buyShort(holding=0,lots,MARKETr);//卖开空单
    nn:=1;
        END


SP1:=c>=ENTERPRICE*0.99;
BP1:=C<=ENTERPRICE*1.01;

IF  holding=4 and nn=1 THEN
begin;
SELL(SP1,lots/2,market);
nn1:=0;
end;

IF  holding=-4  and nn=1 THEN
begin;
SELLSHORT(BP1,lots/2,market);
nn1:=0;
end;
这样的话  的效果是开仓的同一根K线 直接平掉一半(交易记录见图2),我的问题出在哪?怎么写能达到我得目的


图2

图2

图1

图1
回复

使用道具 举报

0

主题

2237

帖子

2247

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-7-6 09:13 | 显示全部楼层
您并未说明具体是什么需求啊,是不是开仓的同一根K线上不要触发平仓呢?
回复

使用道具 举报

8

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2021-6-24
曾用名:
 楼主| 发表于 2021-7-6 09:45 | 显示全部楼层
双均线模型  金叉开多平空  死叉开空平多   开仓后 如果有1%的收益  平掉一半仓位。剩下的仓位 遇到金叉死叉再平
回复

使用道具 举报

0

主题

2237

帖子

2247

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-7-6 10:24 | 显示全部楼层
代码里这两个条件也反了,
SP1:=c>=ENTERPRICE*0.99;
BP1:=C<=ENTERPRICE*1.01;

SELL(SP1,lots/2,market);//平多应该是大于开车价的1.01倍,而不是大于0.99倍 。 平空同理
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-6 16:35 , Processed in 0.263330 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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