以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问如何实现多条件导致同一结果  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=174931)

--  作者:sunszy
--  发布时间:2020/3/12 23:28:09
--  请问如何实现多条件导致同一结果
请问,如附件中所示流程图如何实现?
--  作者:wenarm
--  发布时间:2020/3/13 0:57:58
--  
???? 可以贴图,或者附件压缩后上传
--  作者:sunszy
--  发布时间:2020/3/13 9:02:43
--  您好,不好意思,如图所示
图片点击可在新窗口打开查看
--  作者:sunszy
--  发布时间:2020/3/13 9:05:14
--  

这两天一直在琢磨,未得要领。不知从何下手?if  还是  if else?还是其他?


--  作者:sunszy
--  发布时间:2020/3/13 9:08:14
--  

流程图最后一步,应为平仓指令,手误打错了。不好意思。


--  作者:FireScript
--  发布时间:2020/3/13 9:24:48
--  
 不需要用if-else这种。
你就每个作为单独的条件 来控制开平仓就行了。不要想那么复杂。这几个条件其实都是相互独立的。
类似下面这种方式。每个条件控制一个平仓代码。
sell(盈利 and 离场条件1,holding,market);
sell(亏损 and 离场条件2,holding,market);


--  作者:sunszy
--  发布时间:2020/3/13 10:05:56
--  您好,这是我当下平仓模型,出现了如下的情况

您好,这是我当下平仓模型,出现了如下的情况
DZDYL:=((OPEN-ENTERPRICE)/ENTERPRICE);//当当日开盘价大于开仓价3%的时候,当日最高价-开仓价回撤达到1.5%,即平仓>=1.03
HC:=(close-ENTERPRICE)/ENTERPRICE;

if(DZDYL>0.03,DYDZY,DGDZS);

IF DYDZY THEN BEGIN
 IF HC>=0.01 THEN BEGIN
  SELL(1,1,MARKET);
  END
 END 

IF DGDZS THEN BEGIN
 IF ENTERBARS>=8 THEN BEGIN
  SELL(1,1,MARKET);
  END
 END 

DZS:=(CLOSE-ENTERPRICE)/ENTERPRICE;
if DZS<-0.01 THEN BEGIN
 SELL(1,1,MARKET);
 end
 
KZDYL:=((ENTERPRICE-OPEN)/OPEN);//当当日开盘价大于开仓价3%的时候,当日最高价-开仓价回撤达到1.5%,即平仓>=1.03
HC:=(ENTERPRICE-close)/close;

if(KZDYL>0.03,KYDZY,KGDZS);

IF KYDZY THEN BEGIN
  IF HC>=0.01 THEN BEGIN
    SELLSHORT(1,1,MARKET);
  END
 END

IF KGDZS THEN BEGIN
 IF ENTERBARS>=8 THEN BEGIN
  SELL(1,1,MARKET);
  END
 END 

KZS:=(CLOSE-ENTERPRICE)/ENTERPRICE;
if DZS>0.01 THEN BEGIN
 SELLSHORT(1,1,MARKET);
 end


--  作者:sunszy
--  发布时间:2020/3/13 10:12:09
--  
图片点击可在新窗口打开查看
--  作者:sunszy
--  发布时间:2020/3/13 10:12:56
--  
这个是应用模型后,止损位远高于预设的止损位,不清楚发生了什么,麻烦老师看下
--  作者:FireScript
--  发布时间:2020/3/13 10:32:03
--  
 提供下能编译成功的代码。
似乎有点问题。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

你本地编译成功了再发上来吧。
[此贴子已经被作者于2020/3/13 10:37:31编辑过]