金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100020061

移动止损

[复制链接]

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 14:17 | 显示全部楼层
技术009 发表于 2023-3-20 13:52
你这里 你这个逻辑,你减仓后对重新赋值逻辑没影响啊。
你用的是ENTERPRICE  这是上次开仓价,你减仓 不影 ...

10分钟正常 5分钟就变了  不知道怎么查了····

本帖子中包含更多资源

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

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-20 14:22 | 显示全部楼层
那个是上次平仓价格。现在给止损线 重新赋值的逻辑 和平仓没啥关系,只有加仓才会影响。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 14:34 | 显示全部楼层
技术009 发表于 2023-3-20 14:22
那个是上次平仓价格。现在给止损线 重新赋值的逻辑 和平仓没啥关系,只有加仓才会影响。

收盘了我理一理看看到底怎么回事····
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 14:39 | 显示全部楼层
技术009 发表于 2023-3-20 14:22
那个是上次平仓价格。现在给止损线 重新赋值的逻辑 和平仓没啥关系,只有加仓才会影响。

我的预期就是这样的止损线跟踪 老是会中途出现一些情况· ···

本帖子中包含更多资源

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

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-20 14:49 | 显示全部楼层
你要说清楚 这个止损线什么条件下下移,开仓 和减仓 都下移(满足其他特定条件前提下)?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 15:05 | 显示全部楼层
技术009 发表于 2023-3-20 14:49
你要说清楚 这个止损线什么条件下下移,开仓 和减仓 都下移(满足其他特定条件前提下)?

我把我写的止损模型法给你 条件发给你 帮我理一下吧····我也不知道哪里有问题 我截图截几个给你看下  不知道什么原因老是出现反方向止损线,这样的话会开仓就平仓
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-20 15:06 | 显示全部楼层
你简化之后再发我。否则你那个代码 我看起来太累了。。。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 15:26 | 显示全部楼层
技术009 发表于 2023-3-20 14:49
你要说清楚 这个止损线什么条件下下移,开仓 和减仓 都下移(满足其他特定条件前提下)?

空头: 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);

//上面是移动止损的变量赋值

空入场止损线为:空止损价1。
空止损价1有个前提条件 : if(空止损价1-ENTERPRICE<=(10日区间/2),空止损价1+(10日区间/2)*MINDIFF, IF(空止损价1-入场前高>10日区间,入场前高,空止损价1));
//如果  空止损价1-入场价《10日区间/2 那么 空止损价1 取值为 空止损价1+(10日区间/2);如果 空止损价1-如果入场价>10日区间   那么就是入场前的3日内的最高价
//如果 C<空止损1-20日区间   那么   空止损1:=空止损1-10日区间;
//如果 C<空止损2-20日区间*2 那么   空止损2:=空止损2-1*20日区间;
//如果 减仓且 入场价-C>20日区间,那么  空止损1:=空止损1+10日区间;(往上移一级)  空止损2:=空止损2+1*20日区间;(往上移一级)
//如果平仓  空止损1:=0;    空止损2:=0;
   // 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
多入场止损线为:多止损价1。
多止损价1有个前提条件 :if(ENTERPRICE-多止损价1<=(10日区间/2),多止损价1-(10日区间/2)*MINDIFF, IF(入场前低-空止损价1>10日区间,入场前低,多止损价1));
//如果 入场价-多止损价1<=(10日区间/2)  那么 多止损价1 取值为 多止损价1-(10日区间/2) ; 如果 入场前低-空止损价1>10日区间 那么就是入场前的3日内的最低价
//如果  C>多止损1+20日区间 那么 多止损1:=多止损1+10日区间;
//如果  C>多止损2+20日区间*2  那么 多止损2:=多止损2+20日区间;
//如果 减仓且 C-入场价>>20日区间, 那么 多止损1-10日区间; (往下移一级)   多止损2:=多止损2-20日区间;(往下移一级)
//如果平仓  空止损1:=0;    空止损2:=0;



回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 15:27 | 显示全部楼层
技术009 发表于 2023-3-20 14:49
你要说清楚 这个止损线什么条件下下移,开仓 和减仓 都下移(满足其他特定条件前提下)?

我的原代码:

////////////////////////////////////////////止损模块//////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
////《《《《《《《《《《《《《《《《《《《《《《《《》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
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;
               // 空止损1:=空止损1+10日区间;
               //  空止损2:=空止损2+1*20日区间;
                   END    }        

IF  C>空损  AND HOLDING<0 AND CC=-1  AND ENTERBARS>0 THEN  BEGIN
           空止盈损4:SELLSHORT(1,holding/2,MARKET);
                  CC:=-1;
              //  空止损1:=空止损1+10日区间;
               //空止损2:=空止损2+1*20日区间;
                   END
55日下运行:BARSLAST(cross(ma55,c))>=20 and LONGCROSS(C,MA55,10);
if cc<=-1 and ENTERPRICE-c>20日区间*2 AND LONGCROSS(C,MA55,10) THEN BEGIN//or 55日下运行
      上穿止盈: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;
               // 多止损1:=多止损1-10日区间;
                //   多止损2:=多止损1-20日区间;
                   END}
iF  C<多损  AND HOLDING>0 AND CC=1 AND   ENTERBARS>0  THEN  BEGIN//
           多止盈损4:SELL(1,holding/2,MARKET);
               CC:=1;
             //   多止损1:=多止损1-10日区间;
               //    多止损2:=多止损1-20日区间;
                   END
55日上运行:=BARSLAST(cross(c,ma55))>=20 and LONGCROSS(MA55,c,10);
if cc>=1 and c-ENTERPRICE>20日区间*2 AND LONGCROSS(MA55,c,10)   THEN BEGIN//or 55日上运行
      下穿止盈: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

回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-3-20 15:34 | 显示全部楼层
技术009 发表于 2023-3-20 15:06
你简化之后再发我。否则你那个代码 我看起来太累了。。。

大概思路就是这样
入场赋值一次, 入场赋值有条件;
盈利一个区间 移动一次;
盈利大于第二种区间 ,区间赋值改变一次;
减仓 且盈利大于 第一个区间的话 止损返回上面一级;
平仓重新赋值变量;

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-26 21:01 , Processed in 0.146338 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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