如何找到最后持仓单之困惑 (LastOrder) - 牛在天上飞的日志 - 网 last order 陈奕迅

如何找到最后持仓单之困惑 (LastOrder)

默认分类 2010-06-02 16:43:43 阅读20 评论0 字号:大中小

(未解,待读)

if (OrderSelect(OrdersTotal()-1, SELECT_BY_POS, MODE_TRADES)==True) //按交易中的序号选择第单总数-1个订单

{LastOrder= OrderOpenPrice();} //找到最后单的开仓价

if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES)==True) //按交易中的序号选择0号订单?

{FirstOrder= OrderOpenPrice();} //首个订单开仓价

价差= MathAbs(LastOrder-FirstOrder); //

 

====================================================================================================

int ticket[100];

double price[100];

datetime oot[100];

int count=0;

for(int index = OrdersTotal()-1; index >=0; index--)

if ( OrderSelect(index, SELECT_BY_POS) &&OrderMagicNumber()==MagicNumber &&OrderSymbol()==Symbol() )

{

ticket[count]= OrderTicket();

price[count] = OrderOpenPrice();

oot[count] = OrderOpenTime();

count++;

}

int order[100]; // 插入分类

for (int kk=0; kk<count; kk++) { // Keep ordering ticket[*], price[*] and oot[*]

for (int ii=kk; ii>0 && oot[order[ii-1]] > oot[kk]; ii--)

{ order[ii]=order[ii-1];} // kk oot[kk] order[kk] oot[order[kk]]

// 0 3. 1 1.

order[ii]=kk; // 1 1. 2 2.

} // 2 2. 0 3.

// ticket[order[0]] is the oldest

// ticket[order[count-1]] is the latest

====================================================================================================

[Script] 打印各种订单类型的总数

extern int ExpertMagicNumber=123456;

//+--------------计算所有的订单类型子函数()----------------------------------------------------+

int MyOrdersTotal(int buyNumber, int sellNumber,int buyLimitNumber

,int sellLimitNumber,int buyStopNumber, int sellStopNumber, int MagicNumber=0 ) //

{

int res,

orderType;

//----

buyNumber=0;

sellNumber=0;

buyLimitNumber=0;

sellLimitNumber=0;

buyStopNumber=0;

sellStopNumber=0;

for (int i=OrdersTotal()-1; i>=0; i--)

if (OrderSelect(i, SELECT_BY_POS))

{

if (MagicNumber==0 || (OrderMagicNumber()==MagicNumber && MagicNumber!=0)) //

{

switch(OrderType())

{

case OP_BUY: buyNumber++;break;

case OP_SELL: sellNumber++;break;

case OP_BUYLIMIT: buyLimitNumber++;break;

case OP_SELLLIMIT: sellLimitNumber++;break;

case OP_BUYSTOP: buyStopNumber++;break;

case OP_SELLSTOP: sellStopNumber++;break;

}

}

}

//----

res=buyNumber+sellNumber+buyLimitNumber+sellLimitNumber+buyStopNumber+sellStopNumber;

return(res);

如何找到最后持仓单之困惑 (LastOrder) - 牛在天上飞的日志 - 网 last order 陈奕迅
}

//+----------------脚本程序主函数--------------------------------------------------+

int start()

{

int buys, sells, buyLs, sellLs, buySts, sellSts;

if (MyOrdersTotal(buys,sells,buyLs,sellLs,buySts,sellSts,ExpertMagicNumber)>0)

Print("买单=",buys," 卖单=",sells," 限价买单=",buyLs," 限价卖单=",sellLs," 突破价买单=",buySts," 突破价卖单=",sellSts);

return(0);

}

====================================================================================================

被止损或止赢的检查返回结果的程序段

start()

{

OrderEvents(MAGIC); //调用该子函数

...

}

//------------------------------------在历史中分别查找止损单和赢利单 子函数--------------------------------+

void OrderEvents( int magic ) {

static datetime lastCheck;

for( int o = 0; o < OrdersHistoryTotal(); o++ ) {

if( OrderSelect(o, SELECT_BY_POS, MODE_HISTORY)

&& OrderMagicNumber() == magic &&

&& OrderCloseTime() > lastCheck )

if( OrderClosePrice() == OrderStopLoss() ) //(是否忽略了大于小于的情况未知)

OnStopLoss(OrderTicket());

else if( OrderClosePrice() == OrderTakeProfit() ) //(是否忽略了大于小于的情况未知)

OnTakeProfit(OrderTicket());

}

lastCheck = TimeCurrent();

}

//--------------

void OnStopLoss( int ticket )

{

...<do something ........>

}

//---------------

void OnTakeProfit( int ticket )

{

...<do something ........>

}

//==========================================================

/*

start() {

检查订单被止子函数(MAGIC);

if(类型==OP_BUY ||类型==OP_BUYLIMIT||类型==OP_BUYSTOP) OP=买;

if(类型==OP_BUY ||类型==OP_BUYLIMIT||类型==OP_BUYSTOP) OP=卖;

...

}

void 检查订单被止子函数( int 标识符 ) {

static datetime 最后检查时间;

for( int 个 = 0; 个 < OrdersHistoryTotal(); 个++ ) {

if( OrderSelect(个, SELECT_BY_POS, MODE_HISTORY)

&& OrderMagicNumber() == 标识符

&& OrderCloseTime() > 最后检查时间 )

if(OP==买)

if( OrderClosePrice() <= OrderStopLoss() )

被止损价(OrderTicket());

else if( OrderClosePrice() >= OrderTakeProfit() )

被止赢价(OrderTicket());

if(OP==卖)

if( OrderClosePrice() >= OrderTakeProfit() )

被止损价(OrderTicket());

else if( OrderClosePrice() <= OrderStopLoss() )

被止赢价(OrderTicket());

}

最后检查时间 = TimeCurrent();

}

void 被止损价( int ticket ) {

...<根据关于被止损所做的其他内容代码略>

}

void 被止赢价( int ticket ) {

...<根据关于被止赢所做的其他内容代码略>

}

*/

====================================================================================================

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/176522.html

更多阅读

win8如何找到运行 精 win7系统如何找到运行

win8如何找到运行 精——简介Windows 8是由微软公司开发的,具有革命性变化的操作系统。该系统旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境Windows 8支持来自Intel、AMD和ARM的芯片架构。Windows Phone 8采

如何找到隐藏文件夹 文件夹隐藏了怎么恢复

如何找到隐藏文件夹——简介在默认情况下Windwos是不显示隐藏文件夹的,如果想要查看隐藏的文件夹,通常的做法是通过文件夹选项菜单的设置来显示隐藏文件夹。具体实现方法步骤如下。如何找到隐藏文件夹——方法/步骤如何找到隐藏文件

2012高考零分作文之八:坐在路边鼓掌的人

我是一名高三的学生,很多时候我都是在看书。有时候我也偷偷的跑到网吧里上网,由于花的都是我父母的钱,所以往往我都是忐忑的在电脑前面呆上两个小时,不会多出一分钟,因为多一分钟我就得多出两块五。 以前上网我喜欢玩游戏,现在我已经高三

声明:《如何找到最后持仓单之困惑 (LastOrder) - 牛在天上飞的日志 - 网 last order 陈奕迅》为网友十里画廊分享!如侵犯到您的合法权益请联系我们删除