金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6435|回复: 28

移动止损

[复制链接]

9

主题

34

帖子

34

积分

Rank: 1

等级: 新手上路

注册:
2021-8-22
曾用名:
发表于 2021-10-12 10:00 | 显示全部楼层 |阅读模式
U:=ref(HHV(H,3),1),COLORRED;
D:=ref(llV(l,3),1),COLORGREEN;
X1:U-D,NODRAW;

VARIABLE:d1:=0,d2:=0;
dt:X1>REF((ABS(O-C)+ABS(H-L))/2,1) AND U-L>=X1*1.5;
kt:X1>REF((ABS(O-C)+ABS(H-L))/2,1) AND H-D>=X1*1.5;

接上次那个帖子
KD:=dt;          //开多条件
PD:=kt;          //平多条件
KK:=kt;          //开空条件
PK:=dt;          //平空条件
if holding>=1 and enteRPRICE <d1 then
止损多:sell(1,1,THISCLOSE);
平多:SELL(PD,1,THISCLOSE);                       //平多信号
//平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
ax:ref(h-l,ENTERBARS);
ax1:ref(l,ENTERBARS);
d1:=ax1-ax;
VALUEWHEN(holding>=1 and kd,D1);
if holding>=1 and c <d1 then
止损多:sell(1,1,THISCLOSE);
d1:=0;
我想实现的是 我进场后  再次遇到进场信号时 替换上次进场的止损位(达到移到止损的目的)请老师给看下那valuewhen为什么不计算

回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 10:34 | 显示全部楼层
“VALUEWHEN(holding>=1 and kd,D1);”你不用变量接受函数返回值,你这样写啥用也没有啊。这是函数,返回值需要你用变量去接受才行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

34

帖子

34

积分

Rank: 1

等级: 新手上路

注册:
2021-8-22
曾用名:
 楼主| 发表于 2021-10-12 11:12 | 显示全部楼层
d1 不能起到重新赋值的作用吗
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-12 11:25 | 显示全部楼层
这个函数意思是取满足某个条件时候的某个变量的值,并不是给d1重现赋值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

34

帖子

34

积分

Rank: 1

等级: 新手上路

注册:
2021-8-22
曾用名:
 楼主| 发表于 2021-10-12 22:45 | 显示全部楼层
我   是不是应该改成 else if holding>=1 and kd then d1=d1 对吗 我感觉不对 老师给指点下怎么附上这个值
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-13 08:50 | 显示全部楼层
if holding>=1 and kd then d1:=d1;
这样就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

34

帖子

34

积分

Rank: 1

等级: 新手上路

注册:
2021-8-22
曾用名:
 楼主| 发表于 2021-10-13 21:02 | 显示全部楼层

开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
ax:ref(h-l,ENTERBARS);
ax1:ref(l,ENTERBARS);
d1:=ax1-ax;
if holding>=1 and kd then D1:=d1;
if holding>=1 and c <d1 then
止损多:sell(1,1,THISCLOSE);
if holding =1 then d1:=0;
老师这样编写后  还是能 按照赋值  调试时  还是 第一个进场的止损位,第二次进场并没赋值, 错在那
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-14 08:22 | 显示全部楼层
本帖最后由 技术009 于 2021-10-14 08:24 编辑

你这个代码,到底是什么思路。看不明白。写的很奇怪就。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

9

主题

34

帖子

34

积分

Rank: 1

等级: 新手上路

注册:
2021-8-22
曾用名:
 楼主| 发表于 2021-10-14 21:15 | 显示全部楼层
老师 如图
截图202110142115324110.png
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-15 08:49 | 显示全部楼层
因为你这个止损条件的重置 你放到了止损语句后面了。这样后面那个K会先进行止损,才会更新止损位置的。你得调整下代码位置的哦。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 22:49 , Processed in 0.275840 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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