以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=182416)

--  作者:余生量化
--  发布时间:2020/9/29 22:31:46
--  [原创]请教开仓,加仓公式编译
请问 在最高价突破布林上轨时买入1手,然后在最高价突破比布林上轨价高1个ATR的价格时再买入1手,应该怎样编写
--  作者:wenarm
--  发布时间:2020/9/30 8:14:43
--  

基本的逻辑如下:建议你自己看懂后处理。

注:下面代码非完整代码模块,需要你理解后填充处理。

 

//使用全局变量进行标记。

VARIABLE:flag=0;//用户区分开仓和加仓的标志位

//当没仓位,并且标志位0时,只要最高价突破布林上轨则开仓。

if  cross(HIGH,UPPER) =1  and  HOLDING=0 and flag=0  then begin

    buy();

    flag:=1;//开启加仓标记开关

end

//不知道你所谓的atr要的是均值后的tr,还是就tr。本例以10日均线的tr为参照。你自己根据需要修改。

atr:=ma(tr,10);

 

//最高价突破比布林上轨价高1个ATR的价格时,并且flag=1

if cross(HIGH,UPPER+atr)  and flag=1 then begin

    buy();//加仓语句。

   flag:=0;//此处需要你自己决定是否置为零。一般平仓是需要将flag变成0 ,这样才能再次满足开仓条件

end