以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  编程求助  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=184368)

--  作者:jia7632752
--  发布时间:2021/2/24 13:46:29
--  编程求助
请问浮盈总资金5%后,保本损怎样编程?谢谢!

--  作者:FireScript
--  发布时间:2021/2/24 14:22:02
--  
可以类似这样处理。

buy(TODAYBAR=1,1,market);
maxprofit:hhv(OPENPROFITPER,ENTERBARS+1);//这个要在开仓语句后面;统计开仓位置到现在最大的盈利幅度
cd:maxprofit>=5 and OPENPROFITPER<=0;//如果开仓后最大盈利大于5% 且当前小于等于0了 则止损
sell(cd,holding,market);
--  作者:jia7632752
--  发布时间:2021/2/24 17:21:06
--  
谢谢
--  作者:jia7632752
--  发布时间:2021/2/26 22:21:15
--  
请问我的开平条件都是用的IF语句,怎样把这个保本损编程语句加上
--  作者:FireScript
--  发布时间:2021/3/1 8:57:58
--  
maxprofit:hhv(OPENPROFITPER,ENTERBARS+1);//这个要在开仓语句后面;统计开仓位置到现在最大的盈利幅度
cd:maxprofit>=5 and OPENPROFITPER<=0;//如果开仓后最大盈利大于5% 且当前小于等于0了 则止损
sell(cd,holding,market);

这部分放到开仓语句后面就行了。我前面的带下单语句是用来做测试的。

--  作者:jia7632752
--  发布时间:2021/3/1 12:00:12
--  
谢谢,我试一下
--  作者:jia7632752
--  发布时间:2021/3/1 12:26:20
--  
请问软件这样提示怎样处理?
--  作者:jia7632752
--  发布时间:2021/3/1 12:32:53
--  

图片点击可在新窗口打开查看此主题相关图片如下:360截图20210301120631251.jpg
图片点击可在新窗口打开查看


--  作者:FireScript
--  发布时间:2021/3/1 13:21:03
--  
 不能放到if内部。这段代码你贴出来 我给你改下吧。

--  作者:jia7632752
--  发布时间:2021/3/1 14:15:35
--  
//如果当前是没有持仓的状态
IF POSITION=0 AND BARPOS>T5 AND H>L THEN BEGIN

//建立多头进场条件
LONG := C > T5HI AND C>MA60 ;
//多头进场
IF LONG THEN BEGIN
BUY( _DEBUG,手数,LIMIT,lastdayc);
POSITION := 1 ;
TURTLEUNITS := 1 ;
BUYORDERTHISBAR := 1;

END; //IF

下面的加仓也按照保本损设置,加仓也就等于建仓,是不是也需要在加仓语句下面加上
下面是加(建)仓语句

//如果当前持有多头仓位的状态
variable:x=0;//定义全局变量,用来计算加仓次数

 
IF POSITION=1 AND BARPOS>T5 AND C>MA60 THEN BEGIN

//多头加仓条件

if x<3 and OPENPROFITPER>=10 and FLOOR(OPENPROFITPER)>x*10 and holding>0 then
begin
多加仓:buy(1,加仓手数,LIMIT,lastdayc);
x:=x+1;
end

if  holding=0 then x:=0 AND 加仓手数 =0 ;//平仓之后全局变量重置为0