第一范文网 - 专业文章范例文档资料分享平台

EA编程实训课程 - 图文

来源:用户分享 时间:2025/5/25 0:06:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

输入参数:

输出参数:9-无信号

0- 买入开仓信号 1- 卖出开仓信号 2- BuyLimit信号 3- SellLimit信号 4- BuyStop信号 5- SellStop信号 6- 买入单平仓信号 7- 卖出单平仓信号

算法: /*

Int iTradingSignals() {

Int myReturn=9;//预定义返回变量

iDrawSign(“Dot”,0,Ask,Green,241);标注买入开仓信号 iDrawSign(“Dot”,0,Bid,Red,242);//标注卖出开仓信号 return(myReturn); }

函数:显示交易信息 输入参数: 输出参数: 算 法: */

Void iShowInfo() {

//统计持仓单数据

BuyGroupOrders=0;SellGroupOrders=0;//买入、卖出组成交持仓单数量总计

BuyGroupFirstTicket=0;SellGroupFirstTicket=0;//买入、卖出组持仓单第1张单订单号 BuyGroupLastTicket=0;SellGroupLastTicket=0;//买入、卖出组最后1张单的订单号 BuyGroupLots=0;SellGroupLots=0;//买入、卖出组成交单持仓量 BuyGroupProfit=0;SellGroupProfit=0;//买入、卖出组成交单利润

BuyLimitOrders=0;SellLimitOrders=0;//买入、卖出限制挂单数量总计 BuyStopOrders=0;SellStopOrders=0;//买入、卖出停止挂单数量总计 If(OrdersTotal()>0) {

ArrayResize(OrdersArray,OrdersTotal());//重新界定数组 ArrayInitialize(OredrsArray,0.0);//初始化数组 For(cnt=0;cnt<=OrdersTotal()-1;cnt++) {

iWait();

//选中当前货币对相关持仓订单

If(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES && OrderSymbol()==Symbol() && OrderComment()==MyOrderComment)

{

OrdersArray[cnt][0]=OrderOpenTime(); OrdersArray[cnt][1]=OrderTicket(); OrdersArray[cnt][2]=OrderType(); //买入持仓单

If(OrderType()==OP_BUY) {

BuyGroupOrders=BuyGroupOrders+1;//买入组订单数量 BuyGroupLots=BuyGroupLots+OrderLots();//买入组开仓量 BuyGroupProfit=BuyGroupProfit+OrderProfit();//买入组利润

}

//卖出持仓单

If(OrderType()==OP_SELL) {

SellGroupOrders=SellGroupOrders+1;//卖出组订单数量 SellGroupLots=SellGroupLots+OrderLots();//卖出组开仓量 sellGroupProfit=SellGroupprofit+OrderProfit();//卖出组利润

}

//Limit挂单数量

If(OrderType()==OP_BUYLIMIT)

BuyLimitOrders=BuyLimitOrders+1;

If(OrderType()==OP_SELLLIMIT)

SellLimitOrders=SellLimitOrders+1; //Stop挂单数量

If(OrderType()==OP_BUYSTOP) BuyLimitOrders=BuyStopOrders+1;

If(OrderType()==OP_SELLSTOP)

SellLimitOrders=SellStopOrders+1;

}) }

//重新定义持仓单数组边界 Double myTempArray[][3]; Int

myTrallingOrders=BuyGroupOrders+SellGroupOrders+BuyLimitOrders+SellLimitOrders+BuyStopOrders+SellStopOrders; If (myTrallingOrders>0) {

ArrayResize(OrdersArray,myTrallingOrders);//重新界定数组 //ArrayInitialize(ordersArray,0.0);//初始化数组

ArrayResize(myTempArray,myTrallingOrders);//重新界定临时数组 ArrayInitialize(myTempArray,0.0);//初始化临时数组

}

//按订单开仓时间降序排列,重组订单数组-----冒泡排序 For(i=0;i

For(j=myTrallingOrders-1;j>i;j--) {

If(OrdersArray[j][0]>OrdersArray[j-1][0]) {

myTempArray[0][0]=OrdersArray[j-1][0]; myTempArray[0][1]=OrdersArray[j-1][1]; myTempArray[0][2]=OrdersArray[j-1][2]; myTempArray[j-1][0]=OrdersArray[j][0]; myTempArray[j-1][1]=OrdersArray[j][1]; myTempArray[j-1][2]=OrdersArray[j][2]; myTempArray[j][0]=OrdersArray[0][0]; myTempArray[j][1]=OrdersArray[0][1]; myTempArray[j][2]=OrdersArray[0][2];

} } }

//买入卖出组第1单、最后1单变量赋值 For(cnt=0;cnt

If(OrdersArray[cnt][2]==0) {

BuyGroupLastTicket=StrToInteger(DoubleToStr(OrdersArray[cnt][1],0)); Break;

} }

For(cnt=0;cnt

If(OrdersArray[cnt][2]==1) {

SellGroupLastTicket=StrToInteger(DoubleToStr(OrdersArray[cnt][1],0)); Break;

} }

For(cnt=myTrallingOrders-1;cnt>=0;cnt--) {

If(OrdersArray[cnt][2]==0) {

BuyGroupFirstTicket=StrToInteger(DoubleToStr(OrdersArray[cnt][1],0)); Break;

}

}

For(cnt=myTrallingOrders-1;cnt>=0;cnt--) {

If(OrdersArray[cnt][2]==1) {

SellGroupFirstTicket=StrtoInteger(DoubleToStr(OrdersArray[cnt][1],0)); Break;

} } }

//显示订单信息

iDisplayInfo(Symbol()+”-BuyGroup”,”买入组”,1,70,70,12,”Arial”,Red);

iDispalyInfo(Symbol()+”-Ask”,DoubleToStr(Ask,Digits),1,70,90,12,”Arial”,Red); iDispalyInfo(Symbol()+”-SellGroup”,”卖出组”,1,5,70,12,”Arial”,Green);

iDisplayInfo(Symbol()+”-Bid”,DoubleToStr(Bid,Digit),1,5,90,12,”Arial”,Green); //显示买入组信息

iDisplayInfo(Symbol()+”-BuyGroup”,”买入组”,1,70,70,12,”Arial”,Red);

iDispalyInfo(Symbol()+”-Ask”,DoubleToStr(Ask,Digits),1,70,90,12,”Arial”,Red);

iDispalyInfo(Symbol()+”BuyOrders”,BuyGroupOrders,1,80,110,10,”Arial”,iObjectColor(BuygroupProfit));

iDisplayInfo(Symbol()+”buyGroupLots”,DoubleToStr(BuyGroupLots,2),1,80,125,10,”Arial”,iObectColor(BuyGroupProfit));

iDisplayInfo(Symbol()+”buyGroupProfit”,DoubleToStr(BuyGroupProfit,2),1,80,140,10,”Arial”,iObectColor(BuyGroupProfit)); //显示卖出组信息

iDisplayInfo(Symbol()+”-SellGroup”,”卖出组”,1,5,70,12,”Arial”,Green);

iDispalyInfo(Symbol()+”-Bid”,DoubleToStr(Bid,Digits),1,5,90,12,”Arial”,Green);

iDispalyInfo(Symbol()+”SellOrders”,SellGroupOrders,1,10,110,10,”Arial”,iObjectColor(SellGroupProfit));

iDisplayInfo(Symbol()+”SellGroupLots”,DoubleToStr(SellGroupLots,2),1,10,125,10,”Arial”,iObectColor(SellGroupProfit));

iDisplayInfo(Symbol()+”SellGroupProfit”,DoubleToStr(SellGroupProfit,2),1,10,140,10,”Arial”,iObectColor(SellGroupProfit)); return(0); } /*

函数:交易繁忙,程序等待,更新缓存数据 输入参数: 输出参数: 算法说明:

搜索更多关于: EA编程实训课程 - 图文 的文档
EA编程实训课程 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c49r3194pc26ksx798r55_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top