level 1
//+------------------------------------------------------------------+
//| test.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double TakeProfitLevel;
double StopLossLevel;
double minstoplevel=60;//100 point to stop and take
//Alert("Minimum Stop Level=",minstoplevel*Point," points");
double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
//---
// Alert("TakeProfitLevel =",TakeProfitLevel);
// Alert("StopLossLevel =",StopLossLevel);
//Buy(stoploss,takeprofit);
// Alert("Cross =",Macd());
if(Macd()==1){
Buy(stoploss,takeprofit);
}
if(Macd()==0){
Sell(stoploss,takeprofit);
}
}
//+------------------------------------------------------------------+
int Macd(){
float Macd12,Macd26,MacdBar;
int result=2;
MacdBar=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
Macd12=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
Macd26=Macd12-MacdBar;
float perMacdBar=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
float perMacd12=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
float perMacd26=Macd12-MacdBar;
//Alert("MacdBar=",MacdBar,"perMacdBar=",perMacdBar);
//Alert("Macd12=",Macd12,"perMacd12=",perMacd12);
//Alert("Macd26=",Macd26,"perMacd26=",perMacd26);
//Golden cross under water
if(perMacd12<perMacd26&&Macd12>Macd26&&perMacd12<0&&perMacd26<0){
result=1;
}
//Death cross above water
if(perMacd12>perMacd26&&Macd12<Macd26&&perMacd12>0&&perMacd26>0){
result=0;
}
return result;
}
int Buy(double stoploss,double takeprofit ){
int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,stoploss,takeprofit,"My order",16384,0,clrGreen);
Alert("ticket =",ticket);
if(ticket<0)
{
Alert("buy GetLastError() =",GetLastError());
Print("BUY OrderSend failed with error #",GetLastError());
}
else{
Print("OrderSend placed successfully");
}
return ticket;
}
int Sell(double stoploss,double takeprofit ){
int ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,takeprofit,stoploss,"My sell order",16384,0,clrGreen);
Alert("ticket =",ticket);
if(ticket<0)
{
Alert("GetLastError() =",GetLastError());
Print("OrderSend failed with error #",GetLastError());
}
else{
Print("OrderSend placed successfully");
}
return ticket;
}
//+------------------------------------------------------------------+
2016年06月01日 06点06分
1
//| test.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double TakeProfitLevel;
double StopLossLevel;
double minstoplevel=60;//100 point to stop and take
//Alert("Minimum Stop Level=",minstoplevel*Point," points");
double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
//---
// Alert("TakeProfitLevel =",TakeProfitLevel);
// Alert("StopLossLevel =",StopLossLevel);
//Buy(stoploss,takeprofit);
// Alert("Cross =",Macd());
if(Macd()==1){
Buy(stoploss,takeprofit);
}
if(Macd()==0){
Sell(stoploss,takeprofit);
}
}
//+------------------------------------------------------------------+
int Macd(){
float Macd12,Macd26,MacdBar;
int result=2;
MacdBar=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
Macd12=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
Macd26=Macd12-MacdBar;
float perMacdBar=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
float perMacd12=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
float perMacd26=Macd12-MacdBar;
//Alert("MacdBar=",MacdBar,"perMacdBar=",perMacdBar);
//Alert("Macd12=",Macd12,"perMacd12=",perMacd12);
//Alert("Macd26=",Macd26,"perMacd26=",perMacd26);
//Golden cross under water
if(perMacd12<perMacd26&&Macd12>Macd26&&perMacd12<0&&perMacd26<0){
result=1;
}
//Death cross above water
if(perMacd12>perMacd26&&Macd12<Macd26&&perMacd12>0&&perMacd26>0){
result=0;
}
return result;
}
int Buy(double stoploss,double takeprofit ){
int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,stoploss,takeprofit,"My order",16384,0,clrGreen);
Alert("ticket =",ticket);
if(ticket<0)
{
Alert("buy GetLastError() =",GetLastError());
Print("BUY OrderSend failed with error #",GetLastError());
}
else{
Print("OrderSend placed successfully");
}
return ticket;
}
int Sell(double stoploss,double takeprofit ){
int ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,takeprofit,stoploss,"My sell order",16384,0,clrGreen);
Alert("ticket =",ticket);
if(ticket<0)
{
Alert("GetLastError() =",GetLastError());
Print("OrderSend failed with error #",GetLastError());
}
else{
Print("OrderSend placed successfully");
}
return ticket;
}
//+------------------------------------------------------------------+