MT4條件式平倉 - 財經

By Steve
at 2012-11-04T18:03
at 2012-11-04T18:03
Table of Contents
各位前輩大家好~
現在已知滿足條件下開倉,
也曉得如何控制停損停利,
但小弟現在有個疑問關於條件式的平倉
舉個例,以下是我的程式:
int start()
{
double ema15M10=iMA(Symbol(),PERIOD_M15,10,0,MODE_EMA,PRICE_CLOSE,0);
double ema30M10=iMA(Symbol(),PERIOD_M30,10,0,MODE_EMA,PRICE_CLOSE,0);
double ema15M20=iMA(Symbol(),PERIOD_M15,20,0,MODE_EMA,PRICE_CLOSE,0);
double ema30M20=iMA(Symbol(),PERIOD_M30,20,0,MODE_EMA,PRICE_CLOSE,0);
if((ema15M10<ema30M10)&&(ema15M20<ema30M20))//sell
{
sell(0.1,300,400,Symbol()+"sell",0);
}
if((ema15M10>ema30M10)&&(ema15M20>ema30M20))//buy
{
buy(0.1,300,400,Symbol()+"buy",0);
}
return(0);
}
int buy(double Lots,int loss,int profit,string comment,int magic)
{
int com=0;
int ticket=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderComment()==comment)
{
com=1;
}
}
}
if(com==0)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,30,Ask-loss*Point,Ask+profit*Point,comment,magic,0,Red);
}
return(ticket);
}
int sell(double Lots,int loss,int profit,string comment,int magic)
{
int com=0;
int ticket=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderComment()==comment)
{
com=1;
}
}
}
if(com==0)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,30,Bid+loss*Point,Bid-profit*Point,comment,magic,0,Green);
}
return(ticket);
}
現在我想把平倉條件改為當其再次交叉時平倉
原來的停損及停利取消,要如何從這個程式去改呢?
--
現在已知滿足條件下開倉,
也曉得如何控制停損停利,
但小弟現在有個疑問關於條件式的平倉
舉個例,以下是我的程式:
int start()
{
double ema15M10=iMA(Symbol(),PERIOD_M15,10,0,MODE_EMA,PRICE_CLOSE,0);
double ema30M10=iMA(Symbol(),PERIOD_M30,10,0,MODE_EMA,PRICE_CLOSE,0);
double ema15M20=iMA(Symbol(),PERIOD_M15,20,0,MODE_EMA,PRICE_CLOSE,0);
double ema30M20=iMA(Symbol(),PERIOD_M30,20,0,MODE_EMA,PRICE_CLOSE,0);
if((ema15M10<ema30M10)&&(ema15M20<ema30M20))//sell
{
sell(0.1,300,400,Symbol()+"sell",0);
}
if((ema15M10>ema30M10)&&(ema15M20>ema30M20))//buy
{
buy(0.1,300,400,Symbol()+"buy",0);
}
return(0);
}
int buy(double Lots,int loss,int profit,string comment,int magic)
{
int com=0;
int ticket=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderComment()==comment)
{
com=1;
}
}
}
if(com==0)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,30,Ask-loss*Point,Ask+profit*Point,comment,magic,0,Red);
}
return(ticket);
}
int sell(double Lots,int loss,int profit,string comment,int magic)
{
int com=0;
int ticket=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderComment()==comment)
{
com=1;
}
}
}
if(com==0)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,30,Bid+loss*Point,Bid-profit*Point,comment,magic,0,Green);
}
return(ticket);
}
現在我想把平倉條件改為當其再次交叉時平倉
原來的停損及停利取消,要如何從這個程式去改呢?
--
Tags:
財經
All Comments

By Mia
at 2012-11-06T08:47
at 2012-11-06T08:47

By Rachel
at 2012-11-09T19:58
at 2012-11-09T19:58

By Doris
at 2012-11-13T05:35
at 2012-11-13T05:35

By Irma
at 2012-11-17T22:44
at 2012-11-17T22:44
Related Posts
請問IB的資料能否匯出

By Doris
at 2012-11-03T13:45
at 2012-11-03T13:45
交易員操作資金的組成

By Belly
at 2012-11-02T00:55
at 2012-11-02T00:55
X-程式交易全紀錄10/26

By Todd Johnson
at 2012-10-27T11:53
at 2012-10-27T11:53
有人能提供失效策略嗎?

By Isla
at 2012-10-25T14:06
at 2012-10-25T14:06
X-程式交易全紀錄10/16

By Edward Lewis
at 2012-10-16T19:28
at 2012-10-16T19:28