With Fibs, even better.
Attached File(s)
I will code your pivot EAs for no charge 28 replies
I will code your scalping EAs for no charge 163 replies
Oanda MT4 - Indicators and EAs not showing 2 replies
EAs and indicators relating to moutaki... 22 replies
InterbankFX has loaded its MT4 platform with custom EAs, indicators and scripts 1 reply
//+------------------------------------------------------------------+
//| Moving Average.mq4 |
//| Copyright 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#define MAGICMA 20050610
extern double Lots = 0.1;
extern double MaximumRisk = 0.02;
extern double DecreaseFactor = 3;
extern double MovingPeriod = 12;
extern double MovingShift = 6;
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| Calculate optimal lot size |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//---- select lot size
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.1) lot=0.1;
return(lot);
}
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
double ma;
int res;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
if(Open[1]>ma && Close[1]<ma)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
//---- buy conditions
if(Open[1]<ma && Close[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
return;
}
//----
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
{
double ma;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY)
{
if(Open[1]>ma && Close[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
break;
}
if(OrderType()==OP_SELL)
{
if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
break;
}
}
//----
}
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
void start()
{
//---- check for history and trading
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
}
//+------------------------------------------------------------------+ Disliked{quote} That's really nice, thanks for postingIt's like Support & Resistance (Barry) indicator with the added options of number of bars either side of the Fractal point And the Shift function, not sure why to use that
Ignored
DislikedCan someone tell me which line I need to adjust to make the arrow on the charts larger....I am not a coder. {file} {image}Ignored
// Elliott Wave Trend Indicator // ------------------------------------------ pr= 2 pr2= 10 EWpk2= HIGHEST[1](High) > (High)*(1-pr2)/100 EWtr2= LOWEST[1](Low) < (Low)*(1-pr2)/100 // Intermediate Elliot Wave stuff //zz= ZigZag[pr](close) zzHi2=ZigZag[pr2](High) zzLo2=ZigZag[pr2](Low) avg2=(zzHi2+zzLo2)/2 If EWpk2 Then RetroSuccessSecret2= zzHi2 ELSIF EWtr2 Then RetroSuccessSecret2= zzLo2 ELSIF (avg2>avg2[1]) THEN RetroSuccessSecret2= high ELSE RetroSuccessSecret2= Low ENDIF EW2=ZigZag[pr2](RetroSuccessSecret2) LRZZEW2= LinearRegressionSlope[pr](EW2) RETURN LRZZEW2 coloured(0,0,200) AS "LRZZ EW[10]"
Disliked{quote} I'm not sure you provided the same file as you show in your screenshot.... But, in the code you supplied, replace as per this and set the arrow width to whatever you want - look for "arrowWidth". for the lines, look for: SetIndexStyle(1,DRAW_LINE,EMPTY,1) and SetIndexStyle(0,DRAW_LINE,EMPTY,1) change that last '1' to a 3 or 4. "I do {not?} know how to open the file in metaeditor." - right click on its name in the list of indicators and choose modify. When done, press the compile button. Also, you may want to insert these two lines, in order...Ignored
Dislikedhi everyone I ask your help to encode two custom indicators, if this is possible, which combine, in the first indicator, the MACD and ADX, while the second indicator, RSI and Money flow index. The result I'm looking for is the same as that seen in the screenshots {image} for the first indicator the parameters are: MACD 5,13,2, and should only be visible signal line, with three levels, 0.0009, 0, and -0.0009 and ADX indicator 14 periods, with a level 40, and see only the ADX line, not the + DI and -DI, {image} for the second indicator: RSI 14 periods,...Ignored