您需要 登录 才可以下载或查看,没有帐号?注册
本帖最后由 悟空,为师在这 于 2013-10-23 21:35 编辑
EA是根据自己的交易系统制作而成,大致是4小时图确定方向,按15分图信号开单。支持多种货币,经测试有EU,GU,AU,UJ,UC,UF。
部分源码:#property copyright SHI
#property link http://fx.shi.gs
#define 订单标识 20130812
extern double 订单手数=0.1;
extern double 止盈点数=100;
extern double 移动止损点数=30;
extern double 最大止损点数=40;
double 点差;
double 停止水平;
//用于买入信号
bool 买入第一步=false;
bool 卖出第一步=false;
int 多空=0;//v1.31
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()//v1.28
{
//----
点差=MarketInfo(Symbol(),MODE_SPREAD);
停止水平=MarketInfo(Symbol(),MODE_STOPLEVEL);
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(Bars 100){
Print( bars less than 100
return(0);
}
if(DayOfWeek() =5 Hour() =16)return(0);//v1.25 每周五晚12点后不下单
if(止盈点数 10)return(0);//v1.28
if(资金充足()){
if(!持仓()){
if(!买入())卖出();
}else{
移动止损();
加仓();
平仓();
}
}else{
if(持仓())移动止损();
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| 自定义函数 |
//+------------------------------------------------------------------+
bool 资金充足(){
if(AccountFreeMargin() =订单手数*10000 订单手数 =MarketInfo(Symbol(),MODE_MINLOT))return(true);//v1.28
return(false);
}
bool 持仓(){
for(int i=0;i OrdersTotal();i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() OrderMagicNumber()==订单标识){
if(OrderType()==OP_BUY)return(true);
if(OrderType()==OP_SELL)return(true);
}
}
return(false);
}
bool 买入(){
if(趋势()==1){
if(){//v1.28
买入第一步=true;
}
if(买入第一步==true){
double 止盈位置=Ask+止盈点数*Point;
止盈位置=NormalizeDouble(止盈位置,Digits);
止损位置=NormalizeDouble(止损位置,Digits);
OrderSend(Symbol(),OP_BUY,订单手数,Ask,3,止损位置,止盈位置, EA BUY ,订单标识,0,Green);
alert(Symbol(), 买入操作
SendMail(Symbol(), 买入操作
买入第一步=false;
return(true);
}
}
return(false);
}
bool 卖出(){
if(趋势()==-1){
if(){//v1.28
卖出第一步=true;
}
if(卖出第一步==true){
double 止盈位置=Bid-止盈点数*Point;
if(最大止损点数*Point 止损位置-Ask)return(false);
止盈位置=NormalizeDouble(止盈位置,Digits);
止损位置=NormalizeDouble(止损位置,Digits);
OrderSend(Symbol(),OP_SELL,订单手数,Bid,3,止损位置,止盈位置, EA SELL ,订单标识,0,Red);
alert(Symbol(), 卖出操作
SendMail(Symbol(), 卖出操作
卖出第一步=false;
return(true);
}
}
return(false);
}
int 趋势(){//v1.31
}
void 移动止损(){
for(int i=0;i OrdersTotal();i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() OrderMagicNumber()==订单标识 OrderType() =OP_SELL){
if(OrderType()==OP_BUY){
//BUY
if(Bid-OrderOpenPrice() 移动止损点数*Point OrderStopLoss() Bid-移动止损点数*Point){
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-移动止损点数*Point,OrderTakeProfit(),0,Green);
}
}else{
//SELL
if(OrderOpenPrice()-Ask 移动止损点数*Point (OrderStopLoss() Ask+移动止损点数*Point || OrderStopLoss()==0)){
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+移动止损点数*Point,OrderTakeProfit(),0,Green);
}
}
}//endif(OrderSymbol()==Symbol() OrderMagicNumber()==Magic OrderType() =OP_SELL)
}
}
void 加仓(){
bool 加多单=true;
bool 加空单=true;
int 多单=0;
int 空单=0;
for(int i=0;i OrdersTotal();i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() OrderMagicNumber()==订单标识 OrderType() =OP_SELL){
if(OrderType()==OP_BUY){
//BUY
多单=多单+1;
if(OrderStopLoss() OrderOpenPrice()){
加多单=false;
}
}else{
//SELL
空单=空单+1;
if(OrderStopLoss() OrderOpenPrice()){
加空单=false;
}
}
}//endif(OrderSymbol()==Symbol() OrderMagicNumber()==Magic OrderType() =OP_SELL)
}
if(多单 0 加多单==true)买入();
if(空单 0 加空单==true)卖出();
}
void 平仓(){//v1.31
int i;
if(趋势()==1){
for(i=0;i OrdersTotal();i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() OrderMagicNumber()==订单标识 OrderType()==OP_SELL){
OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
}
}
}
if(趋势()==-1){
for(i=0;i OrdersTotal();i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() OrderMagicNumber()==订单标识 OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
}
}
}
}复制代码
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!