Price Data Components
Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
TRUE_SCALPER_V11c
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+------------------------------------+
//| TRUE_SCALPER |
//+------------------------------------+
// Designed for 5 but I attached it to 15 and it worked fine.
// long if EMA3>EMA7:::EMA3<EMA7<0
// Code Adapted from Scalper EAs to use EMA and RSI and multiple currencies
// variables declared here are GLOBAL in scope
#property copyright "Jacob Yego"
#property link "http://www.PointForex.com/"
// generic user input
extern double Lots=1.0;
extern int TakeProfit=100;
extern int StopLoss=0;
extern int TrailingStop=5;
extern int Slippage=2;
//+------------------------------------+
//| Custom init (usually empty on EAs) |
//|------------------------------------|
// Called ONCE when EA is added to chart
int init()
{
return(0);
}
//+------------------------------------+
//| Custom deinit(usually empty on EAs)|
//+------------------------------------+
// Called ONCE when EA is removed from chart
int deinit()
{
return(0);
}
//+------------------------------------+
//| EA main code |
//+------------------------------------+
// Called EACH TICK and possibly every Minute
// in the case that there have been no ticks
int start()
{
double p=Point();
int cnt=0;
int i=0;
int ProfitMade=2;
int OrdersPerSymbol=0;
bool found=false;
bool rising=false;
bool falling=false;
bool cross=false;
double bull=0;
double bear=0;
double RSI=0;
bool RSIPOS=0;
bool RSINEG=0;
double lobar=0;
double highbar=0;
double sl=0,tp=0;
// Error checking
if(AccountFreeMargin()<(1000*Lots)) {Print("-----NO MONEY"); return(0);}
if(Bars<100) {Print("-----NO BARS "); return(0);}
if (TakeProfit<10) {Print("TakeProfit<10"); return(0);}
bull=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
bear=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
if(RSI>50) RSIPOS=true; else RSIPOS=false;
if(RSI<50) RSINEG=false; else RSIPOS=true;
lobar=Low[Lowest(MODE_LOW,19,19)];
highbar=High[Highest(MODE_HIGH,19,19)];
OrdersPerSymbol=0;
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() )
{
OrdersPerSymbol++;
}
}
// place new orders based on direction
if(OrdersPerSymbol<1)
{
if(bull>bear && RSINEG)
{
sl=lobar-1*p; //(ask-(StopLoss*point));
tp=(Bid+(TakeProfit*p));
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,sl,tp,"ZJMQCIDFG",11123,0,White);
return(0);
}
if(bull<bear && RSIPOS)
{
sl=highbar+1*p; //(bid+(StopLoss*point));
tp=(Ask-(TakeProfit*p));
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sl,tp,"ZJMQCIDFG",11321,0,Red);
return(0);
}
} //if
// close if profit target made
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() )
{
if(OrderType()==OP_BUY)
{
if( Bid-OrderOpenPrice() > (ProfitMade*p) )
{
OrderClose(OrderTicket(),Lots,Bid,0,White);
return(0);
}
}
if(OrderType()==OP_SELL)
{
if( OrderOpenPrice()-Ask > (ProfitMade*p) )
{
OrderClose(OrderTicket(),Lots,Ask,0,Red);
return(0);
}
}
}
}
// See if the direction changed, and close if so
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() )
{
if(OrderType()==OP_BUY)
{
if(bull<bear)
{
OrderClose(OrderTicket(),Lots,Bid,0,White);
return(0);
}
}
if(OrderType()==OP_SELL)
{
if(bull>bear)
{
OrderClose(OrderTicket(),Lots,Ask,0,Red);
return(0);
}
}
}
}
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
---