金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3572|回复: 8

如何编写下移止损

[复制链接]

23

主题

41

帖子

41

积分

Rank: 1

等级: 新手上路

注册:
2021-6-21
曾用名:
发表于 2022-1-18 08:43 | 显示全部楼层 |阅读模式
if holding=0 and kk1 then BEGIN
        buyshort(1,1,LIMITr,o);
       
     END
我想做一个止损下移,可是不会写条件
如图,开仓后以 ref(hh3,ENTERBARS)这个价格为基点,
ds:=ref(hh3,ENTERBARS)-(ref(l,1)-l)
if(l<ref(l,1),上次条件成立的ds-(ref(l,1)-l),否则返回上次的点数);
当开仓后1的位置条件成立,那么就取 ref(hh3,ENTERBARS)-(ref(l,1)-l);

当1后面没有成立l<ref(l,1)时,则取1位置的值
当2成立时,就用1位置的值减去(ref(l,1)-l);
当2后面没有成立l<ref(l,1)时,,就取2成立位置的值,
当3成立时,就用2位置的值减去(ref(l,1)-l);
当3后面没有成立l<ref(l,1)时,,就取3成立位置的值,
后面的以此类推,
只是我不会编写取上次成立的值,还请工作人员帮我编写下


003.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-18 08:50 | 显示全部楼层
用VALUEWHEN 函数处理。这个函数会取上次成立时候的值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

23

主题

41

帖子

41

积分

Rank: 1

等级: 新手上路

注册:
2021-6-21
曾用名:
 楼主| 发表于 2022-1-18 08:52 来自手机 | 显示全部楼层
你帮我写个模板我参考下
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-18 09:00 | 显示全部楼层
[PEL] 复制代码
VARIABLE:ds:=0;//使用全局变量,再下次赋值之前始终会自动保存前面的值


if holding=0 and kk1 then 
BEGIN
buyshort(1,1,LIMITr,o);
ds:=ref(hh3,ENTERBARS)-(ref(l,1)-l);//初始赋值
END


ds:=if(l<ref(l,1),ds-(ref(l,1)-l),ds);//后续更新


这种需要延续前面值,并根据当前条件判断是否更新的。直接可以定义成全局变量,利用全局变量的特性来处理。


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

23

主题

41

帖子

41

积分

Rank: 1

等级: 新手上路

注册:
2021-6-21
曾用名:
 楼主| 发表于 2022-1-18 09:04 | 显示全部楼层
技术009 发表于 2022-1-18 09:00
[mw_shl_code=pel,true]VARIABLE:ds:=0;//使用全局变量,再下次赋值之前始终会自动保存前面的值

ds:=if(l<ref(l,1),ds-(ref(l,1)-l),ds);
这句里面后面如果条件不成立返回ds就不对了,只有开仓后第一次出现条件成立了l<ref(l,1)时才需要返回ds,其后要是再次成立需要返回上次ds-(ref(l,1)-l)的这个值啊,后面以此类推,要返回上次条件成立的值才对啊
回复

使用道具 举报

23

主题

41

帖子

41

积分

Rank: 1

等级: 新手上路

注册:
2021-6-21
曾用名:
 楼主| 发表于 2022-1-18 09:05 | 显示全部楼层
麻烦您用VALUEWHEN 函数处理写完整
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-18 09:05 | 显示全部楼层
ds:=if(l<ref(l,1),ds-(ref(l,1)-l),ds);

你这里if条件不成立时候 ds值是不更新的。ds延续上次的值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

23

主题

41

帖子

41

积分

Rank: 1

等级: 新手上路

注册:
2021-6-21
曾用名:
 楼主| 发表于 2022-1-18 13:59 | 显示全部楼层
技术009 发表于 2022-1-18 09:00
[mw_shl_code=pel,true]VARIABLE:ds:=0;//使用全局变量,再下次赋值之前始终会自动保存前面的值

ref语句不能用在if控制语句内啊
微信图片_20220118135849.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-18 14:01 | 显示全部楼层
放在if外面定义,再在if里面调用。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 00:22 , Processed in 0.256057 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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