Помогите пожалуйста написать эксперт по моей стратегии

 
Здравствуйте!
Заранее знаю, что меня буду называть наивным глупышкой, но стратегия малоприбыльна, зато стабильна.
Помогите пожалуйста написать эксперт. В награду получите стратегию:)
Уверен, что Вы талантливы, а так же честны и благородны, как я.

Условия:

5М и 15М

Работа по 2 парам, хотя можно и с любыми другими, кроме кроссов.

Валюты: GBP/USD и USD/CAD

Индикаторы: МА 120, CCI 14 и %R 31

Условия открытия ордера на покупку:
1. Цена должна быть выше линии МА120
2. CCI 14 должна пройти ниже -110, развернуться снизу вверх и проткнуть -100
3. %R 31 должна находиться просто ниже -75


Условия открытия ордера на продажу:
1. Цена должна быть ниже линии МА120
2. CCI 14 должна пройти выше +110, развернуться сверху вниз и проткнуть +100
3. %R 31 должна находиться просто выше -25

Общие условия:

ТП 10, СЛ 10

Спасибо!
 
Если не найдётся "талантливого, честного и благородного добровольца", который напишет даром =), можешь мне на мыло писАть - komposterius друг человека mail точка ru
 
Индикатор :
//+------------------------------------------------------------------+
//|                                                Stable_isBase.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Olegplus, coded Ins for mt4 "
#property link      "insami@nm.ru"

extern int BackPer=1000, PeriodOver110=10;
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_chart_window

int i=0; double ind_buff1[], ind_buff2[], iCCiMax,iCCiMin;
int init()  { SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);SetIndexArrow(0,241);SetIndexBuffer(0,ind_buff1);SetIndexLabel(0,"Stable_isBase  Buy");SetIndexEmptyValue(0,0.0);  
              SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);SetIndexArrow(1,242);SetIndexBuffer(1,ind_buff2);SetIndexLabel(1,"Stable_isBase Sell");SetIndexEmptyValue(1,0.0); return(0); }
//int deinit()  { return(0);}

double iCCi(int Per,int shift) { return( iCCI(NULL,0,Per,PRICE_CLOSE,shift) ); }

int start()
{ 
    for( i=BackPer;i>0;i-- )
 {  iCCiMax=0; iCCiMin=1000000; 
    for( int k=0; k<PeriodOver110; k++ ) { if( iCCi(14,i+k)>iCCiMax ) iCCiMax=iCCi(14,i+k);  
                                           if( iCCi(14,i+k)<iCCiMin ) iCCiMin=iCCi(14,i+k);
                                         }
   //===BUY
    if( Close[i]>iMA( NULL,0,120,0,MODE_EMA,PRICE_CLOSE,i ) && iWPR(NULL,0,31,i)<-75   &&
        iCCi(14,i+1)<-100 /*&& iCCi(14,i+2)<-100*/ && iCCi(14,i)>-100 && iCCiMin<110 )
        ind_buff1[i]= Low[i]-4*Point;

   //===SELL
    if( Close[i]<iMA( NULL,0,120,0,MODE_EMA,PRICE_CLOSE,i ) && iWPR(NULL,0,31,i)>-25   &&
        iCCi(14,i+1)> 100 /*&& iCCi(14,i+2)> 100*/ && iCCi(14,i)< 100 && iCCiMax>110 )
        ind_buff2[i]=High[i]+4*Point;
        

 }
   return(0);
}
//+------------------------------------------------------------------+