还是不发单啊.,再一次请管理员与版主进来看一看 [开拓者 TB]
- 咨询内容:
本帖最后由 xiaosong 于 2013-7-25 08:31 编辑
它就是不发单了,就是不发单...
Begin
//if(BarStatus==2 && Time==0.090000 && CurrentTime<0.090000) Return; // 集合竞价过滤
conEntryReady=CurrentTime*100 >=tradBegin and CurrentTime*100<tradEnd and Q_LowerLimit>20*MinMove*PriceScale AND Q_UpperLimit-C>20*MinMove*PriceScale;//不靠近涨跌停 //// 开仓时限
If(BarStatus == 0)
{
DeleteOrderTickCounter = 9999;
HasSendOrder = 0;
SetGlobalVar(0,DeleteOrderTickCounter);
SetGlobalVar(1,HasSendOrder);
}Else
{
DeleteOrderTickCounter = GetGlobalVar(0);
HasSendOrder = GetGlobalVar(1);
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(这里写的运算,如:先算均线,10日,5日,然后,在下面真接写表达式,如满足了,就发单)
If(conEntryReady and BarStatus == 2 and HasSendOrder == 0)
{
If(Max(开多信号 and a_buyposition==0 and a_sellposition==0 ) // 开多信号
{
A_SendOrder(Enum_Buy,Enum_Entry,Lots,Q_AskPrice()+N*MinMove*PriceScale);//发送委托单开多仓一手
HasSendOrder = 1;
SetGlobalVar(1,HasSendOrder);
Return;
}
If(Min(开空信号 and a_buyposition==0 and a_sellposition==0 ) // 开空信号
{
A_SendOrder(Enum_Sell,Enum_Entry,Lots,Q_BidPrice()-N*MinMove*PriceScale); //发送委托单开空仓一手
HasSendOrder = 1;
SetGlobalVar(1,HasSendOrder);
Return;
}
}
If(conEntryReady and BarStatus == 2 && HasSendOrder == 1)
{ if(平多信号 and a_buyposition>0) // 平多信号 满足要求下平多
{
A_SendOrder(Enum_Sell,Enum_ExitToday, A_BuyPosition(),Q_BidPrice()-N*MinMove*PriceScale);
HasSendOrder = 0;
SetGlobalVar(1,HasSendOrder);
Return;
}
if(平多信号 and a_buyposition>0) // 平多信号 止损
{
A_SendOrder(Enum_Sell,Enum_ExitToday, A_BuyPosition(),Q_BidPrice()-N*MinMove*PriceScale);
HasSendOrder = 0;
SetGlobalVar(1,HasSendOrder);
Return;
}
if( 平空信号 and A_SellPosition>0) // 平空信号 止损
{
A_SendOrder(Enum_Buy,Enum_ExitToday,A_SellPosition,Q_BidPrice()+N*MinMove*PriceScale);
HasSendOrder = 0;
SetGlobalVar(1,HasSendOrder);
Return;
}
if(平空信号 and A_SellPosition>0) // 平空信号
{
A_SendOrder(Enum_Buy,Enum_ExitToday,A_SellPosition,Q_BidPrice()+N*MinMove*PriceScale);
HasSendOrder = 0;
SetGlobalVar(1,HasSendOrder);
Return;
}
}
End
要求简单,如果显开多信号,开多,不管它消失不,下一Bar或者是Tick 再触发开多信号,不重开. 如果止损信号出现,平仓.
开空也是一样
上面的逻辑这样清楚啊. 都不发单,我是细细地研究了,帮助中的交易策略进阶----A函数下单撤单和全局变量操作写出来的.
是不是开空,开多的运算写的位置不对.
- TB技术人员:
有自己写日志将条件都输出来看过吗?
你的开多与开空条件是什么意思呢?
max,min是比较数值大水上的函数,你这样 的用法是不对的吧?这样应该不能直接通过编译吧 - TB客服:
本帖最后由 xiaosong 于 2013-7-27 07:29 编辑
小米 发表于 2013-7-25 10:19
有自己写日志将条件都输出来看过吗?
你的开多与开空条件是什么意思呢?
max,min是比较数值大水上的函数, ...
谢谢老大了.
1:有自己写日志将条件都输出来看过吗?
不知道如何搞了?
2:你的开多与开空条件是什么意思呢?
我是这样想的.
Begin
....................在这里就运算条件了.
If(Max(开多信号 and a_buyposition==0 and a_sellposition==0 ) // 开多信号就是条件合适
{
A_SendOrder(Enum_Buy,Enum_Entry,Lots,Q_AskPrice()+N*MinMove*PriceScale);//发送委托单开多仓一手
2:
max,min是比较数值大水上的函数,你这样 的用法是不对的吧?这样应该不能直接通过编译吧
能编译,就是图上无信号,不发单. - 网友回复:
xiaosong 发表于 2013-7-25 11:24
谢谢老大了.
1:有自己写日志将条件都输出来看过吗?
1.fileappend() 输出你的开仓条件里所有需要判断到的变量的值,一一排查。
2.你能将你使用到max的这句原话贴一下吗????
以我对max函数的了解,想象不了你这里比条件是怎么个比法。 - 网友回复:
本帖最后由 小米 于 2013-7-26 15:18 编辑
给你一个简单的a_sendorder发单的例子,可看一下。
这个主要是说明一个全局变量控制a_sendorder的情况。具体的条件以及发单价格要自己琢磨一下,这里不做参考 。- Vars
- bool aa;
- Bool bb;
- Begin
- aa = xxxxx;
- bb = yyyyy;
- If(GetGlobalVar(0)==InvalidNumeric)
- {
- SetGlobalVar(0,0);
- SetGlobalVar(1,0);
- }
- If(BarStatus==2)
- {
- If( aa && A_GetOpenOrderCount==0 && A_BuyPosition==0 && GetGlobalVar(0)==0)
- {
- A_SendOrder(enum_buy,enum_entry,1,q_last);
- SetGlobalVar(0,1);
- setGlobalVar(1,0);
- }
- If( bb && A_GetOpenOrderCount==0 && A_BuyPosition>0 && GetGlobalVar(1)==0)
- {
- A_SendOrder(enum_sell,enum_exit,1,q_last);
- SetGlobalVar(1,1);
- SetGlobalVar(0,0);
- }
- }
- Commentary("get0: get1:"+Text(getglobalvar(0))+","+text(getglobalvar(1)));
- End
- Vars
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容