//+------------------------------------------------------------------+ //| Doji Arrows | //| | //+------------------------------------------------------------------+ /* This Expert was mand from an indicator made by Chris (HyPip). I do not know if it will place a trade, you will have to debug it yourself. I made it to simply show everyone how easy it is to create an Expert. Every week I hear "I am not a programmer please make this" or "I do not know how" The truth is I do not know how either, but I've made 40 or 50 experts in recent months many from indicators just like this one. All I can tell you is CUT AND PASTE Enjoy and debug. bobammax */ #property copyright "" #property link "" //---- #property indicator_buffers 4 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 Blue #property indicator_color4 Red //---- extern double TakeProfit=25; extern double Lots=1; extern double TrailingStop=10; extern double InitialStop=20; //---- extern int slip=0;//exits only extern double lp=300; extern double sp=30; datetime BarTime; //---- input parameters //extern int RISK=3; extern double thresholdB=0.0001; extern double thresholdS=-0.0001; extern int SSP=9; extern int CountBars=2000; //---- buffers double val1[]; double val2[]; double val3[]; double val4[]; double red0,red1,red2; double blue0,blue1,blue2; double cci0,cci1,rsi0,dpo0,dpo1; double plusdi,minusdi,main; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line IndicatorBuffers(4); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,234); // SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,233); // SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,253); // SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,253); // SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); SetIndexBuffer(2,val3); SetIndexBuffer(3,val4); //---- return(0); } //+------------------------------------------------------------------+ //| Doji Arrows | //+------------------------------------------------------------------+ int start() { if(BarTime==Time[0]) {return(0);} //new bar, update bartime BarTime=Time[0]; //---- SetIndexDrawBegin(0,Bars-CountBars+SSP+1); SetIndexDrawBegin(1,Bars-CountBars+SSP+1); int i,counted_bars=IndicatorCounted(); int K; bool uptrend,downtrend,ExitBuy,ExitSell,old,old2,old3,old4; //---- if(Bars<=SSP+1) return(0); //---- initial zero if(counted_bars=0) { //dpo1=iCustom(NULL,0,"DPO",7,800,0,i+1); val1[i]=0.0; val2[i]=0.0; val3[i]=0.0; val4[i]=0.0; //buy signal if ((Close[i+2]==Open[i+2]) && (Close[i+1]>High[i+2]) /*&& (iCCI(NULL,0,14,PRICE_CLOSE,i)>100)*/) uptrend=true; //else uptrend=false; if ((!(Close[i+2]==Open[i+2])) && (!(Close[i+1]>High[i+2]))) uptrend=false; if ((! uptrend==old) && (uptrend==true)) { //PlaySound("alert.wav"); val2[i]=Low[i]-5*Point; //Alert(TimeMonth(CurTime()),"/",TimeDay(CurTime())," at ",TimeHour(CurTime()),":",TimeMinute(CurTime())," - Possible buy on ",Symbol()," ", Period()); } //sell signal if ((Close[i+2]==Open[i+2]) && (Close[i+1]0) { OrderSelect(0, SELECT_BY_POS, MODE_TRADES); if((OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) && (OrderSymbol()==Symbol())) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()0) { if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { if(OrderStopLoss()==0.0 || OrderStopLoss()>(Ask+Point*TrailingStop)) { OrderModify(OrderTicket(),OrderOpenPrice (),Ask+Point*TrailingStop,OrderTakeProfit(),0,Aqua); return(0); } } } } } } } //---- return(0); //+------------------------------------------------------------------+