设为首页收藏本站

 找回密码
 注册
查看: 979|回复: 1
打印 上一主题 下一主题

老师,请问这个IF-THEN循环该怎么写?? [复制链接]

Rank: 1

精华
0
UID
230432
积分
19
帖子
11
主题
7
阅读权限
10
注册时间
2016-3-20
最后登录
2019-3-13
跳转到指定楼层
1#
发表于 2019-1-23 00:56:35 |只看该作者 |倒序浏览
本帖最后由 xic1982 于 2019-1-23 01:57 编辑

老师,请问这个IF-THEN循环该怎么写?

TS代码,上半部分定义了condition1
四句代码这个命令条件不成立很伤脑筋。

If condition1 = TRUE    then Sell Next Bar  LOWEST( LOW , 2) STOP ;   //(一)、如果条件1成立,C低于2K线的最低点,平多

If condition1 = TRUE and LOW <= LOWEST( LOW , 2)                  //(二)、如果条件1成立,并且最低点低于2K线的最低点,则命令条件1不成立。
then condition1 = FALSE;                                                              //老师,这里肯定是先平仓然后再命令条件1不成立,但是TB没有IF,THEN的步进式写法,我想不出和(一)里面的条件不冲突的写法

Sell Next Bar  LOWEST( LOW , 20) STOP ;                                       //(三)然后C低于20K线的最低点,平多??????老师,这里的条件是什么?感觉和上下都不搭啊

If condition1 = TRUE and LOW <= LOWEST( LOW , 20)              //(四)如果条件1成立,并且最低点低于20K线的最低点,则命令条件1不成立。
then condition1 = FALSE;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我(一)(二)句子改写如下:但是这样可能无法正常发出平仓指令,

     if (condition1 = true and low[1] < Lowest (low[1],2))
                {                     
                                SELL (1,Open) )             //老师,这里的下一根开盘平多如何写?  if (condition1 = true and low【1】 < Lowest (low【1】,2)),这样对吗?还是有别的写法?
                                }
                               
     if (condition1 = true and low < Lowest (low,2))                      //老师,上面的用了low[1],那么这里的条件判断怎么办?是不是会比上一条早成立,然后上一条的SELL就没法发出来了?如果上面用low[2],这里用low[1],感觉就比原指标要慢很多了,2根K线在日线级别上的利润差大了去了。
                                {
                                condition1 = False;
                                }
      if ( low < Lowest (low,20))
                {                     
                                SELL (1,Open) )
                                }
请问老师,这种IF  条件1成立,则执行,然后命令条件1不成立的语句该怎么写???
我有想过把持仓为0加入,但是感觉不严密,牵一发而动全身啊,请您指点以下,帮我改写一下这个循环。看看怎么能最简单实用的改写?

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2019-1-25 09:46:36 |只看该作者
if( condition 1)
{
     sell;
}else
{
   ...
}
//上面这段,就是条件1满足执行某动作。以及else表达的是条件1不满足的情况下。

ps:if (condition1 = true and low[1] < Lowest (low[1],2))这样的写法是有误的。
  1,判断是否相等是使用== ,而赋值符号才是= 。
  2,在条件后直接计算lowest(low[1],2)这个写法极易导致计算结果有误的。
       可改成先声明一个变量,在条件外将lowest(low[1],2)赋值给变量,再将该变量代入原条件是中进行即可。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-27 08:24

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部