老师们好,自己总结了一些问题,以双均线为例,把问题描述在程序里,错误的地方和不懂的地方麻烦老师指正,谢谢。

老师们好,学习了一段时间,自己总结了一些问题,以双均线为例,把问题描述在程序里,错误的地方和不懂的地方麻烦老师指正,谢谢。


// 简称: DualMA
// 名称: 双均线交易系统
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
    Numeric FastLength(5);// 短期指数平均线参数
    Numeric SlowLength(20);// 长期指数平均线参数
Vars
    Series<Numeric> AvgValue1; 
    Series<Numeric> AvgValue2;
        Series<Numeric> my_entryprice;
Events
    OnBar(ArrayRef<Integer> indexs)
    {
        AvgValue1 = AverageFC(Close,FastLength);
        AvgValue2 = AverageFC(Close,SlowLength);
        PlotNumeric("MA1",AvgValue1);
        PlotNumeric("MA2",AvgValue2);        
        
        
                If(Time>0.0905 and Time<=0.1449 )//做日内,限制开仓时间为9:05-14:49,股指类的话另外设置
            {
        If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])  //没有持多仓开多仓 限制循环开仓 设置委托偏移,数字2代表两跳,是这么理解吗?滑点是什么呢?
        {
            Buy(0,Open);//这里0代表什么?按照可用资金最大开仓手数开仓吗?数字1代表1手,数字2代表2手,是这样理解吗?
                        my_entryprice=Open;
        }
        
        If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) //没有持空仓开空仓 限制循环开仓  设置委托偏移,数字2代表两跳,是这么理解吗?滑点是什么呢?
        {
            SellShort(0,Open);
                        my_entryprice=Open;
        }
       
            //止盈  止损  和其他出场条件
            //止损条件    加这个限制的话 And BarsSinceEntry > 0//开仓bar不止损止盈
           If(MarketPosition>0 and 1ow< my_entryprice-10)//止损条件满足 EntryPrice-low>10  10就是10个点  任何一个品种10
           {
                 Sell(0, min(O,my_entryprice-10));
           }
           else if(Marketposition>0 and high> EntryPrice+10)//止盈条件满足盈利10个点,EntryPrice,high-my_entryprice>10
           {
                 Sell(0,max(O,my_entryprice+10));
           }
           else if(其他条件)//如kdj死叉就出场
           {
                 Sell(0,Open);//这里用Open合适还是其他合适?如c 最新价?
           }
          //空头止损 止盈和其他出场条件同上


          //把止损条件放在开仓条件前,就会形成开仓bar不止损    程序运行是由上往下 是这样吗?


         //收盘前强制平仓
           If (Date == CurrentDate AND CurrentTime >= 0.1455 AND Time == 0.1455 AND MarketPosition()!=0)  
           //本机时间14:55 强制平仓   Time == 0.1455为5分钟周期,15分钟周期改为0.1445  30分钟周期改为0.1430  这样理解正确吗?
                {       
                       If(MarketPosition() == 1) Sell(0,O);// 平全部多单
                       If(MarketPosition() == -1) BuyToCover(0,O);//平全部空单

                }

 }


其他问题:
Buy(0,Open);//这里0代表什么?按照可用资金最大开仓手数开仓吗?数字1代表1手,数字2代表2手,是这样理解吗?
进场Buy(1,Open)  Buy(1,max(Open,H)和Buy(1,c)和Buy(1,last)//这几个进场表达有什么区别?c是不是代表最新价?last也是最新价吗?
出场Buy0,Open)和sell(0,min(Open,L))的区别是什么?


上一次kdj金叉到当前bar的距离怎么表达?
NthCon(CrossOver(J,K) , 1);这样表达可以吗?


关于止损:下面两个表达方式是一个意思吗?

1ow< my_entryprice-10  //开仓价亏损10个点出场
1ow< my_entryprice- Offset_ByJump(0,10)) // 这里不太明白Offset_ByJump 怎么使用


 

我的程序错在什么地方?
ALERT允许开关,在TBQUANT里是哪个地方打开的?
细说程序化交易学习的步骤,以交易开拓者为例
求教一下, 刚用TB,想知道自己的策略在软件的什么地方编写啊?
请老师帮我在双均线策略中,加上以ATR数值为止损的程序段
求教老师,自定义编写公式策略在什么地方啊?
我想在双均线策略里,加一个振幅在一定宽度内不做的程序语言
双均线平仓问题
请教各位老师随机策略在TBQ里运行的问题
双均线参数优化

针对你的问题,现做部分解答,更多咨询欢迎加企业微信咨询。

 

Buy(0,Open);//这里0代表什么?按照可用资金最大开仓手数开仓吗?数字1代表1手,数字2代表2手,是这样理解吗?

0代表买入数量


进场Buy(1,Open)  Buy(1,max(Open,H)和Buy(1,c)和Buy(1,last)//这几个进场表达有什么区别?c是不是代表最新价?last也是最新价吗?

Buy(1,Open)以开盘价买入1手;

 Buy(1,max(Open,H)以开盘价和最高价的最大值买入1手;

Buy(1,c) c是Close的缩写,以收盘价买入1手,盘中以最新价买入;

Buy(1,last) 没有last函数,Q_Last 当前公式应用商品的最新价,不能使用于历史测试,仅适用于实时行情交易。

老师,您说的视频讲解是哪个?是腾讯课堂吗?

看置顶的投稿贴 等周四的时候直播讲 老师也方便 你听起来也容易

我觉得你这个投稿看视频讲解会更清楚

老师,有空了帮我指正一下,谢谢