With Fibs, even better.
Attached File(s)
FractalsMod_OK_Plus.ex4
12 KB
|
459 downloads
I will code your pivot EAs for no charge 23 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
Disliked{quote} I tried to read about programming basics this weekend,but i couldn't understand anything.It's like a martian language for me .Ignored
//+------------------------------------------------------------------+ //| 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 posting It'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 thatIgnored
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