Всем доброго времени суток .... господа помогите разобраться с вопросом по поводу временного параметра. Задача такова, у меня есть критерий на вход с переменными которые закреплены в определённом временном параметре.
Всё работает, когда тест на этом же времени М5, но только меняю (при тестирование, например на Н1), результат тоже меняется, как написать правильно? Спасибо!!!
Всем доброго времени суток .... господа помогите разобраться с вопросом по поводу временного параметра. Задача такова, у меня есть критерий на вход с переменными которые закреплены в определённом временном параметре.
Спасибо.
Спасибо.
Так попробуй
Так попробуй
Есть индикатор:
//| T3MA_ALARM.mq4 |
//| Copyright © 2011, Martingeil |
//| fx.09@mail.ru |
//+------------------------------------------------------------------+
//исправленный Martingeil, теперь можно в тестере увидеть его стрелки.
#property copyright "Copyright © 2011, Martingeil"
#property link "fx.09@mail.ru"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- indicator parameters
extern int period = 4; //12
extern int shift = 0; //сдвиг по бару
//---- indicator buffers
double BufferUp[],BufferDn[];
int q,st=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,2);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW,2);
SetIndexArrow(1,234);
SetIndexBuffer(0,BufferUp);//стрелка синяя верх
SetIndexBuffer(1,BufferDn);//стрелка красная вниз
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("T3MA-ALARM ("+period+")");
//---- initialization done
if(Digits==3 || Digits==5) q=10;
st=st*q;
return(0);}
int deinit()
{
ObjectDelete("low");
ObjectDelete("high");
}
//+----------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+----------------------------------------------------------------------+
int start()
{
//---- ArraySetAsSeries --------------------------------------------------
double Ma[500],MaOn[500];
double y0[500],y1[500],y2[500];
int i,limit=ArraySize(Ma);
ArraySetAsSeries(Ma,true);
//---- IndicatorCounted --------------------------------------------------
int counted_bars=IndicatorCounted();
int limit1=Bars-counted_bars;
if (limit1>1){limit1=Bars-period-1;}
//---- EMA ---------------------------------------------------------------
for(i=limit1; i>=0; i--) Ma[i] =iMA(NULL,0,period,0,MODE_EMA,PRICE_CLOSE,i);
for(i=limit1; i>=0; i--) MaOn[i]=iMAOnArray(Ma,limit,period,0,MODE_EMA,i);
for(i=limit1; i>=0; i--)
{
y0[i+shift]=MaOn[i+shift];
y1[i+1+shift]=MaOn[i+1+shift];
y2[i+2+shift]=MaOn[i+2+shift];
if(y0[i+shift]-y1[i+1+shift]<0 && y1[i+1+shift]-y2[i+2+shift]>0){BufferDn[i+1]=High[i+1]+st*Point;}//продажа
if(y0[i+shift]-y1[i+1+shift]>0 && y1[i+1+shift]-y2[i+2+shift]<0){BufferUp[i+1]=Low[i+1]-st*Point;}//покупка
//---- Signal Trend Up || Dn ---------------------------------------------
if(y0[i]-y1[i+1]>0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n BUY TREND ",DoubleToStr(Close[i],Digits));
else if(y0[i]-y1[i+1]<0) Comment ("\n SWAPLONG = ",MarketInfo(Symbol(),MODE_SWAPLONG),
" SWAPSHORT = ",MarketInfo(Symbol(),MODE_SWAPSHORT),"\n SELL TREND ",DoubleToStr(Close[i],Digits));
}
//---- done
return(0);}
//+---------------------------------------------------------------------+
Хочу зделать советник который бы при появлении стрелки входил в позицию, какое условие нужно прописать в советнике?
Всем доброго времени суток .... господа помогите разобраться с вопросом по поводу временного параметра. Задача такова, у меня есть критерий на вход с переменными которые закреплены в определённом временном параметре.
M5maBIG_1= iMA(ed,PERIOD_M5,150,0,MODE_EMA,PRICE_CLOSE,1);
M5L=NormalizeDouble(iLow(ed,PERIOD_M5,1),Digits);
if(M5L<M5maBIG_1){ordersend(520);} пробовал такие варианты как---- ((M5L<M5maBIG_1))__((M5L)<(M5maBIG_1))__(((M5L)<(M5maBIG_1)))---- тоже не работает!
if(a==520){RefreshRates();//__________________________________________________________________________________
op=NormalizeDouble(Ask,Digits);sl=NormalizeDouble(op-62*kio*Point,Digits);tp=NormalizeDouble(op+54*kio*Point,Digits);
ticket=OrderSend(ed,OP_BUY, Lot,op,3,sl,0,comm,magic+520,0,Green);//_____Lot=
err=GetLastError();
if(err!=0){Print("Error-",err," op-",op," sl-",sl," tp-",tp);}}
Всё работает, когда тест на этом же времени М5, но только меняю (при тестирование, например на Н1), результат тоже меняется, как написать правильно? Спасибо!!!
MaperiodAVTO = 750 / Period();
laveosa:Всем доброго времени суток .... господа помогите разобраться с вопросом по поводу временного параметра. Задача такова, у меня есть критерий на вход с переменными которые закреплены в определённом временном параметре.
M5maBIG_1= iMA(ed,PERIOD_M5,150,0,MODE_EMA,PRICE_CLOSE,1);
M5L=NormalizeDouble(iLow(ed,PERIOD_M5,1),Digits);
Например так:
int MaperiodAVTO;
if( Period()>1){
MaperiodAVTO = 750 / Period();
}
else
{
MaperiodAVTO = 750;
}
M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);
Например так:
int MaperiodAVTO = 750 / Period();
M5maBIG_1= iMA(ed, Period() , MaperiodAVTO ,0,MODE_EMA,PRICE_CLOSE,1);
почему 750?
почему 750?
Нравится ему это число просто
почему 750?