全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
请问crossover函数的成立逻辑是什么?
2023-12-12 18:33

老师你好,我发现个问题,就是如果用金叉死叉反手策略,然后我在收盘前平仓的话,我发现第二天开盘第一根k线按逻辑看,是死叉,但是没有开空。我输出死叉看看是否成立,显示是不成立。所以我就很困惑,金叉死叉的逻辑到底是怎样的。我在生猪2403合约五分钟周期测试的截图,老师可以看一下12月1号的开盘情况。明显是k线跟线死叉了,但是不开空,老师指点一下是什么原因。


Params

//此处添加参数


Vars

//此处添加变量

    Series<Numeric> MA;

    Series <Numeric> MK;

    Series<Bool> MAUP;

    Series<Bool> MADOWN;

Defs

//此处添加公式函数

Events

//此处实现事件函数



//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

OnBar(ArrayRef<Integer> indexs)

{

MA=OpenD(0) + OpenD(0)*0.001;

Mk=OpenD(0) - OpenD(0)*0.001;

Commentary(OpenD(0)=+Text(OpenD(0)));

Commentary(MA=+Text(MA));

Commentary(MK=+Text(MK));

PlotNumeric(MA,MA);

PlotNumeric(MK,MK);

MAUP = CrossOver(High,MA);

MADOWN = CrossUnder(Low,MK);

Commentary(time: + Text(time));

Commentary(MarketPosition: + Text(MarketPosition));

Commentary(MAUP: + IIFString(MAUP,true,false));

Commentary(MADOWN: + IIFString(MADOWN,true,false));

Commentary(high: + Text(high));

Commentary(low: + Text(low));

If(MarketPosition<>1 && MAUP)

{

Buy(1,Max(Open,MA));

}

If(MarketPosition<>-1 && MADOWN)

{

SellShort(1,Min(open,MK));

}

If(MarketPosition == 1 &&  Time>=0.145000 && Time < 0.150000)

{

Sell(0,Open);

}

If(MarketPosition ==-1&& Time>=0.145000 && Time < 0.150000)

{

BuyToCover(0,open);

}

}



data-href=

kyover

这个函数是开源的,想知道逻辑直接打开函数代码看里面怎么写的就行了

原理很简单,a金叉b,那么上一根bar的a小于b,这一根bar的a大于b

2023-12-13 08:39
wangkaiming

MADOWN = CrossUnder(Low,MK);

low? 虽然不知道你图上那个位置,你以为是死叉,实际

2023-12-13 10:19
您未登录,请先 登录注册 后发表评论
顶部