金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1901|回复: 4

止损

[复制链接]

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2023-3-20 11:11 | 显示全部楼层 |阅读模式
老师帮我看下我这个移动止损是哪里有问题  偶尔会出现这样的情况,开仓的时候止损线跑到反方向去了  我把止损模块,开仓语句都发上来

////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
VARIABLE:空止损1:=0; 空止损价2:=REF(卖1,ENTERBARS);空止损价1:=IF(HOLDING<0,空止损价2,DRAWNULL);
VARIABLE:空止损2:=0;

VARIABLE:多止损1:=0; 多止损价2:=REF(买1,ENTERBARS);多止损价1:=IF(HOLDING>0,多止损价2,DRAWNULL);
VARIABLE:多止损2:=0;
入场前高:=ref(hhv(h,3),ENTERBARS);
入场前低:=ref(LLv(L,3),ENTERBARS);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
if 多止损1=0 and  holding>0  AND CC>0 then 多止损1:=if(ENTERPRICE-多止损价1<=(10日区间/2),多止损价1-(10日区间/2)*MINDIFF, IF(入场前低-空止损价1>10日区间,入场前低,多止损价1));
IF 多止损2=0 and  holding>0  AND CC>0 then 多止损2:=多止损1;
if C>多止损1+20日区间 AND HOLDING>0  THEN 多止损1:=多止损1+10日区间;
if C>多止损2+20日区间*2 AND HOLDING>0 and 多止损1<>0 THEN 多止损2:=多止损2+20日区间;
if holding>0 AND C>MA55 AND C-ENTERPRICE>=3*20日区间  and 多止损2<>0 THEN 多止损1:=多止损2;
///////////////////////////////////////////////////////
多损:IF(holding>0 AND 多止损1<>0 ,多止损1,DRAWNULL);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
if 空止损1=0 and  holding<0  AND CC<0 then 空止损1:=if(空止损价1-ENTERPRICE<=(10日区间/2),空止损价1+(10日区间/2)*MINDIFF, IF(空止损价1-入场前高>10日区间,入场前高,空止损价1));
IF 空止损2=0 and  holding<0  AND CC<0 then 空止损2:=空止损1;
if C<空止损1-20日区间 AND HOLDING<0  THEN 空止损1:=空止损1-10日区间;
if C<空止损2-20日区间*2 AND HOLDING<0 and 空止损1<>0 THEN 空止损2:=空止损2-1*20日区间;
if holding<0 AND C<MA55 AND C<=ENTERPRICE-(3*20日区间)THEN 空止损1:=空止损2;
/////////////////////////////////////////////////////////////
空损:IF(空止损1<>0 AND holding<0,空止损1,DRAWNULL);
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
IF  C>空损  AND HOLDING<0 AND CC<=-2  AND ENTERBARS>0  THEN  BEGIN
           空止盈损3:SELLSHORT(1,holding/2,MARKET);
                  CC:=-1;
                   END            

IF  C>空损  AND HOLDING<0 AND CC=-1  AND ENTERBARS>0 THEN  BEGIN
           空止盈损4:SELLSHORT(1,holding/2,MARKET);
                  CC:=-1;
                  空止损1:=0;
                 空止损2:=0;
                   END
if cc<=-1 and ENTERPRICE-c>20日区间*2 AND LONGCROSS(C,MA55,10) THEN BEGIN
      上穿止盈:SELLSHORT(1,0,MARKET);
                  cc:=0;
                  空止损1:=0;
                 空止损2:=0;
                   END
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
IF  C<多损  AND HOLDING>0 AND CC>=2 AND   ENTERBARS>0  THEN  BEGIN//
           多止盈损3:SELL(1,HOLDING/2,MARKET);
                cc:=1;
                   END
iF  C<多损  AND HOLDING>0 AND CC=1 AND   ENTERBARS>0  THEN  BEGIN//
           多止盈损4:SELL(1,holding/2,MARKET);
               CC:=0;
               多止损1:=0;
                   多止损2:=0;
                   END
if cc>=1 and c-ENTERPRICE>20日区间*2 AND LONGCROSS(MA55,c,10) THEN BEGIN
      下穿止盈:SELL(1,0,MARKET);
                  cc:=0;
                    多止损1:=0;
                   多止损2:=0;
                   END
//////////////////////////////////////////////////////////////////////////////////////
IF HOLDING>0 THEN   BEGIN
CC:=1;
MAXPROFIT:=0;////有仓位时最大获利幅度
        END
///////////////////////////////////////////////////////////////////////////////////////////
IF HOLDING<0 THEN   BEGIN
CC:=-1;
MAXPROFIT:=0;////有仓位时最大获利幅度
    END
IF HOLDING=0 THEN BEGIN

  CC:=0;
    END



  IF YYK  OR KK1 then BEGIN

        M10平多:SELL(ENTERBARS>0,holding,MARKET);
  CC:=0;
          多止损1:=0;
          多止损2:=0;
        if  HOLDING=0  then  BEGIN
M10开空:BUYSHORT(1,2,MARKET);
        CC:=-1;
END
  END


截图202303201108187759.png
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-3-20 11:18 | 显示全部楼层
本帖最后由 技术006 于 2023-3-20 11:22 编辑

这种逻辑问题,你只能自己本地在出现的位置前后位置上逐个条件排查造成的原因。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 11:21 | 显示全部楼层
技术006 发表于 2023-3-20 11:18
这种逻辑问题,你只能自己本地在出现的位置前后主题逐个条件排查造成的原因。

排查了很多次,可能就跟 这几个的赋值位置有关系  处理得不太好
cc:=0;
                    多止损1:=0;
                   多止损2:=0;
                   空止损1:=0;
                 空止损2:=0;
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 11:41 | 显示全部楼层
技术006 发表于 2023-3-20 11:18
这种逻辑问题,你只能自己本地在出现的位置前后位置上逐个条件排查造成的原因。

if 空止损1=0 and  holding<0  AND CC<0 then 空止损1:=if(空止损价1-ENTERPRICE<=(10日区间/2),空止损价1+(10日区间/2)*MINDIFF, IF(空止损价1-入场前高>10日区间,入场前高,空止损价1));
IF 空止损2=0 and  holding<0  AND CC<0 then 空止损2:=空止损1;
if C<空止损1-20日区间 AND HOLDING<0  THEN 空止损1:=空止损1-10日区间;
if C<空止损2-20日区间*2 AND HOLDING<0 and 空止损1<>0 THEN 空止损2:=空止损2-1*20日区间;
if holding<0 AND C<MA55 AND C<=ENTERPRICE-(3*20日区间)THEN 空止损1:=空止损2;
////////////////////////////////
IF  C>空损  AND HOLDING<0 AND CC=-1  AND ENTERBARS>0 THEN  BEGIN
           空止盈损4:SELLSHORT(1,holding/2,MARKET);
                  CC:=-1;
                 { 空止损1:=0;
                 空止损2:=0;}/////////这种减仓HOLDING<>0的情况下 这里的两个赋值改为当前止损线的上一级 要怎么赋值呢
                   END
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 11:48 | 显示全部楼层
100020061 发表于 2023-3-20 11:21
排查了很多次,可能就跟 这几个的赋值位置有关系  处理得不太好
cc:=0;
                    多止损1: ...

前面的止损到反方向的问题找到了 收盘平仓没有重置止损为0; 持仓为0都要再次重置止损为0
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 04:21 , Processed in 0.162184 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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