CCI Expert Advisor - page 3

 
newdigital:
Just found one thread with EA here https://www.mql5.com/en/forum/178938

Newdigital,

Sorry to disturb you. can you please assist me finetune this ea. it works for cci. but problem is when it should open buy it will open sell and vice versa. however, i could see it has a promising use for me, this is why i come to you as an expert to help me look at the ea,

*********************

//+------------------------------------+

//| Expert Framework |

//+------------------------------------+

#property copyright ""

#property link ""

// User Input

extern double Lots = 0.01;

extern int TakeProfit=25;

extern int StopLoss=0;

extern int Interval=1;

extern int myCCIs=30; // 5 days

extern int myCCIl=150; // 25 days

// Global scope

double barmove0 = 0;

double barmove1 = 0;

int itv = 0;

double Poin;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//|------------------------------------------------------------------|

int init()

{

//Checking for unconvetional Point digits number

if (Point == 0.00001) Poin = 0.0001; //5 digits

else if (Point == 0.001) Poin = 0.01; //3 digits

else Poin = Point; //Normal

itv=Interval;

return(0);

}

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

bool found=false;

bool rising=false;

bool falling=false;

bool cross=false;

double slA=0, slB=0, tpA=0, tpB=0;

double p=Poin;

double cCIs;

double cCIm;

double cCIf;

int cnt=0;

// Error checking

if(AccountFreeMargin()<(1000*Lots)) {Print("-----NO MONEY"); return(0);}

if(Bars<100) {Print("-----NO BARS "); return(0);}

if(barmove0==Open[0] && barmove1==Open[1]) { return(0);}

// bars moved, update current position

barmove0=Open[0];

barmove1=Open[1];

// interval (bar) counter

// used to pyramid orders during trend

itv++;

// since the bar just moved

// calculate TP and SL for (B)id and (A)sk

tpA=Ask+(p*TakeProfit);

slA=Ask-(p*StopLoss);

tpB=Bid-(p*TakeProfit);

slB=Bid+(p*StopLoss);

if (TakeProfit==0) {tpA=0; tpB=0;}

if (StopLoss==0) {slA=0; slB=0;}

// get CCI based on OPEN

cCIs=iCCI(Symbol(),0,125,PRICE_OPEN,0);

cCIm=iCCI(Symbol(),0, 25,PRICE_OPEN,0);

cCIf=iCCI(Symbol(),0, 5,PRICE_OPEN,0);

// is it crossing zero up or down

if (cCIm=0 && cCIf>0) { rising=true; cross=true; Print("Rising Cross");}

if (cCIm>=0 && cCIs<=0 && cCIf<0) {falling=true; cross=true; Print("Falling Cross");}

// close then open orders based on cross

// pyramid below based on itv

if (cross)

{

// Close ALL the open orders

for(cnt=OrdersTotal();cnt>0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol())

{

if (OrderType()==0) {OrderClose(OrderTicket(),Lots,Bid,3,White);}

if (OrderType()==1) {OrderClose(OrderTicket(),Lots,Ask,3,Red);}

itv=0;

}

}

// Open new order based on direction of cross

if (rising) OrderSend(Symbol(),OP_BUY,Lots,Ask,3,slA,tpA,"ZZZ100",11123,0,White);

if (falling) OrderSend(Symbol(),OP_SELL,Lots,Bid,3,slB,tpB,"ZZZ100",11321,0,Red);

// clear the interval counter

itv=0;

}

// Only pyramid if order already open

found=false;

for(cnt=OrdersTotal();cnt>0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol())

{

if (OrderType()==0) //BUY

{

if (itv >= Interval)

{

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,slA,tpA,"ZZZ100",11123,0,White);

itv=0;

}

}

if (OrderType()==1) //SELL

{

if (itv >= Interval)

{

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,slB,tpB,"ZZZ100",11321,0,Red);

itv=0;

}

}

found=true;

break;

}

}

return(0);

}

*********************

and the code -- that appears to be the right way for the ea to operate, but dont know how to code it into the ea.

**************

{==Variable Setup}

Var: vCCI(0);vCCI=CCI(14); {Or 20 as you like.}

Var: LSMA(0);LSMA=LinearRegValue(C,25,0);

Var: EMA34(0);EMA34=Xaverage(C,34)

Var: ExitTrail(0),ExitValue(0),ExitReason("None"); {Used for exit}

{==ZLRs Entry}

If 1=1

and vCCI[1]>=0 and vCCI[2]>0 and vCCI[3]>0 and vCCI[4]>0 and vCCI[5]>0 {6 bars Above Zero}

and Highest(vCCI,5)>=100 {Comes from outside 100s -- Also - no chop mode}

and vCCI[1]<100 {Pulled back inside 100s}

and vCCI>vCCI[1] and vCCI[2]>vCCI[1] {Hook}

and vCCI<130 {Not oversold}

and vCCI-vCCI[1]>5 {Strong V -- Optional, adjust as you wish.}

and C>EMA34 and EMA34>EMA34[1] {Close above rising 34EMA}

and C>LSMA and LSMA>LSMA[1] {Close above rising LSMA}

Then Begin

Buy ("ZLR") This Bar at close;

End;

{==1st Hook Exit}

{You will notice that the trailing routine exits at the ExitValue-.0005}

{You can change the .0005 to a higher or lower value to let your trades breathe.}

{You can also change it to exit AT MARKET if you just want to exit at 1st hook immediately.}

If MarketPosition=1 and vCCI<vCCI[1] Then Begin ExitValue=L; ExitTrail=1; ExitReason="Hook"; End;

If vCCI>vCCI[1] then ExitTrail=0; {Hooked back, Turn off, keep going.}

{==Trailing Routine}

If ExitTrail=1 and MarketPosition=1 then sell ("eXit") next bar at ExitValue-.0005 stop;

*****************

i send with it. the code shows how to trade cci, but i dont know how to incorporate it into the ea to work better.

regards,

your student.

ay

 

Hi ranuhook,

I am very sorry: i am not good coder and codingf takes long time for me. Can not code now: no time sorry.

May be someone can help ...

If you want to change buy and sell so I just found the thread: https://www.mql5.com/en/forum

 
newdigital:
Hi ranuhook,

I am very sorry: i am not good coder and codingf takes long time for me. Can not code now: no time sorry.

May be someone can help ...

If you want to change buy and sell so I just found the thread: https://www.mql5.com/en/forum

thanks a lot newdigital, i will look into it, i am so grateful.

 

It is paypal and egold only for elite section.

But you can wait for RentaSignal service started as it will be a lot of free signals (same trading by EA).

 
newdigital:
Hi ranuhook,

I am very sorry: i am not good coder and codingf takes long time for me. Can not code now: no time sorry.

May be someone can help ...

If you want to change buy and sell so I just found the thread: https://www.mql5.com/en/forum

thanks a lot newdigital, i will look into it, i am so grateful. BTW, is it possible to pay and join elite without using the paypal, as i am from nigeria, and it is not accepting people from nigeria. i really want to turn my live trading account around please. i need all it takes to make it in this game. thanks again

 

Testing

Hi David,

This is John Girgis

I am happy to help you out with testing the EA.

Do you still require some testing to be done?

Regards,

John

Maji:
David,

Would you like to run a test on the EA that I mentioned on this thread?

https://www.mql5.com/en/forum/general

You and/or anyone interested please PM me and let me know.
 

REQUEST: Code indicator for signals based on CCI and SMA

Hello Guys,

Recently I find CCI as more and more powerful indie for binary options, then more i seek into it then more powerful it becomes.

I've came across this interesting strategy:

Crossover Trading Strategy with CCI | Binary Options Trading Strategy Guide

Wondering if some one could program an indie that would generate arrows/alerts based on this rules.

To use this strategy to trade binary options, you need to have accompanying charting software which allows you to add common indicators. What you are looking for is a long-term trend, often easier to identify in a 15 minute or hour chart.

In the charting window, add a simple moving average (SMA) that tracks the trend you’ve established in the higher timeframe chart. Since the ideal timeframe for trading this strategy is in the minute chart, that means you should be tracking the trend in an hour chart. So the simple moving average should calculate for 60 periods.

The second indicator is the Commodity Channel Index (CCI) which is added to the bottom of the chart at the standard 14 periods. CCI is one of the more sensitive oscillators, and helps measure short-term movement in comparison to the SMA 60.

Entry Rules:

1.- The market just touches the SMA, but the candle closes below it. In this case, wait until the next candle closes and check the CCI. If it’s within the 100 to -100 range (the space between the dotted lines on the bottom chart) then it’s a signal to enter the market.

2.- If the market crosses over the SMA, then wait until it crosses back and closes below again. Check to make sure the CCI is between the 100 to -100 range, and that’s a signal to enter the market.

If neither of those scenarios develops, then hold off on trading.

Lets make it happen

Thanks for everyone who may help!

 

Ronmark2

I might make this in MT5 but it will be a little different from your specs as I would want it for auto trading.

Reason: