Orders Execution
0
Views
0
Downloads
0
Favorites
MAMy Expert
//+------------------------------------------------------------------+
//| MAMy Expert.mq4 |
//| Copyright © 2006, Victor Chebotariov |
//| http://www.chebotariov.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Victor Chebotariov"
#property link "http://www.chebotariov.com/"
extern int ma_method = 3;
extern int period = 3;
extern double Lots = 0.1;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(Bars<100){Print("bars less than 100");return(0);}
//----
int cnt, ticket, total;
double iMAMy_0=iCustom(NULL,PERIOD_MN1,"MAMy v.3",ma_method,period,0,1);
double iMAMy_1=iCustom(NULL,PERIOD_MN1,"MAMy v.3",ma_method,period,0,2);
double iMAMy_2=iCustom(NULL,PERIOD_MN1,"MAMy v.3",ma_method,period,1,1);
double iMAMy_3=iCustom(NULL,PERIOD_MN1,"MAMy v.3",ma_method,period,1,2);
//----
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots)){Print("We have no money. Free Margin = ", AccountFreeMargin());return(0);}
if(iMAMy_0>0 && iMAMy_1<=0)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,0,16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(iMAMy_0<0 && iMAMy_1>=0)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,0,16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
if(iMAMy_2<0 && iMAMy_3>=0)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return(0); // exit
}
}
else // go to short position
{
if(iMAMy_2>0 && iMAMy_3<=0)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
return(0); // exit
}
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---