Может чего не хватает в коде или это глюк такой.
Наоборот - избытки мешали.
//+------------------------------------------------------------------+ //| SHI_SilverTrendSig.mq4 | //| Copyright © 2003, VIAC.RU, OlegVS, GOODMAN, 2005 Shurka | //| shforex@narod.ru | //| | //| | //| //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue #define SH_BUY 1 #define SH_SELL -1 //---- Входные параметры extern int AllBars=0;//How many bars should be counted. 0 - all the bars. extern int Otstup=30;//Step back. extern double Per=9;//Period. int SH,NB,i,UD; double R,SHMax,SHMin; double BufD[]; double BufU[]; //+------------------------------------------------------------------+ //| Функция инициализации | //+------------------------------------------------------------------+ int init() { //We will write the number of the bars for which we are counting to the NB if (Bars<AllBars+Per || AllBars==0) NB=Bars-Per; else NB=AllBars; SetIndexStyle(0,DRAW_ARROW,0,1); SetIndexArrow(0,159); SetIndexBuffer(0,BufU); SetIndexStyle(1,DRAW_ARROW,0,1); SetIndexArrow(1,159); SetIndexBuffer(1,BufD); return(0); } //+------------------------------------------------------------------+ //| Функция деинициализации | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Собсна индикатор | //+------------------------------------------------------------------+ int start() { int CB=IndicatorCounted(); if(CB<0) return(-1); else if(NB>Bars-CB) NB=Bars-CB; for (SH=1;SH<NB;SH++){ SHMax = High[Highest(NULL,0,MODE_HIGH,Per,SH)]; SHMin = Low[Lowest(NULL,0,MODE_LOW,Per,SH)]; if (Close[SH]<SHMin+(SHMax-SHMin)*Otstup/100 && UD!=SH_SELL) { BufU[SH]=Low[SH]-iATR(NULL,0,14,SH); UD=SH_SELL; } if (Close[SH]>SHMax-(SHMax-SHMin)*Otstup/100 && UD!=SH_BUY){ BufD[SH]=High[SH]+iATR(NULL,0,14,SH); UD=SH_BUY; } } return(0); }
//+------------------------------------------------------------------+ //| SHI_SilverTrendSig.mq4 | //| Copyright © 2003, VIAC.RU, OlegVS, GOODMAN, 2005 Shurka | //| shforex@narod.ru | //| | //| | //| //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue #define SH_BUY 1 #define SH_SELL -1 //---- Входные параметры extern int AllBars=0;//How many bars should be counted. 0 - all the bars. extern int Otstup=30;//Step back. extern double Per=9;//Period. int SH,NB,i,UD; double R,SHMax,SHMin; double BufD[]; double BufU[]; //+------------------------------------------------------------------+ //| Функция инициализации | //+------------------------------------------------------------------+ int init() { //We will write the number of the bars for which we are counting to the NB if (Bars<AllBars+Per || AllBars==0) NB=Bars-Per; else NB=AllBars; SetIndexStyle(0,DRAW_ARROW,0,1); SetIndexArrow(0,159); SetIndexBuffer(0,BufU); SetIndexStyle(1,DRAW_ARROW,0,1); SetIndexArrow(1,159); SetIndexBuffer(1,BufD); return(0); } //+------------------------------------------------------------------+ //| Функция деинициализации | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Собсна индикатор | //+------------------------------------------------------------------+ int start() { int CB=IndicatorCounted(); if(CB<0) return(-1); else if(NB>Bars-CB) NB=Bars-CB; for (SH=NB-1;SH>=0;SH--){ SHMax = High[Highest(NULL,0,MODE_HIGH,Per,SH)]; SHMin = Low[Lowest(NULL,0,MODE_LOW,Per,SH)]; if (Close[SH]<SHMin+(SHMax-SHMin)*Otstup/100 && UD!=SH_SELL) { BufU[SH]=Low[SH]-iATR(NULL,0,14,SH); UD=SH_SELL; } if (Close[SH]>SHMax-(SHMax-SHMin)*Otstup/100 && UD!=SH_BUY){ BufD[SH]=High[SH]+iATR(NULL,0,14,SH); UD=SH_BUY; } } return(0); }
Inteqer благодарствую за помощь. В понедельник бум тестить :).
А брякалку добавить к нему очень сложно? Чёт сколько я крутил
вертел ничего не выходит ......... ума хватает только на то что бы
чё нить по мелочи поменять в коде :(.
Где то встречал что через PlaySound ( ) надо, но куда поставить эту функцию ...........
Пробовал по подобию других индюков оповещение добавить ......
. ........ пока безуспешно :)
Вот такая трабла.
} //---------- static int lt; if(BufU[1]!=0 && BufU[1]!=EMPTY_VALUE){ if(lt!=Time[0])Alert("К покупке однако..."); lt=Time[0]; } if(BufD[1]!=0 && BufD[1]!=EMPTY_VALUE){ if(lt!=Time[0])Alert("Однако к продаже..."); lt=Time[0]; } //---------- return(0); }
Этот индикатор по сути является не сглаженным семидневным стохастиком, точка рисуется если он пересекает уровень 30 сверху вниз (внизу) и 70 снизу вверх (вверху). А из за того, что пересечение смотрится справа на лево, точками отмечается последнее, потому так красиво, но в реале этого не будет.
Подскажите как вытащить значение образования стрелки для того чтобы на следующей свече осуществлять открытие ордера
попробовал вот так вот ...
//+------------------------------------------------------------------+
//| Schreibikus_SHI_Silver_Trend_Sig_0902_22.mq4 |
//| Copyright © 2009, Roman S Schuklin |
//| https://forextd.webasyst.net/shop/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Roman S Schuklin"
#property link "https://forextd.webasyst.net/shop/"
//---- input parameters
extern double Lots=0.01; //Объем лота
extern int SL=0; //Уровень Stop Loss
extern int AllBars=0; //Значения SHI_Silver_Trend_Sig
extern int Otstup=30; //Значения SHI_Silver_Trend_Sig
extern double Per=9.0; //Значения SHI_Silver_Trend_Sig
extern int Slippage=3; //Проскальзывание до 0 - 12
extern int MAGIC1=32344758; //Магическое число Sell
extern int MAGIC2=35782048; //Магическое число Buy
int ticket,SHI,f,i,start;
int start()
{
double iOpen1=NormalizeDouble(iOpen(NULL,0,1),Digits);
double iClose1=NormalizeDouble(iClose(NULL,0,1),Digits);
for(f=true,i=2;i<Bars;i++)
{
SHI=iCustom(NULL,0,"SHI_SilverTrendSig_1",AllBars,Otstup,Per,0,i);
}
double SHI1=NormalizeDouble(SHI*Point,Digits);
if(OrdersTotal()==0 && iClose1 <= SHI || OrdersTotal()==0 && iClose1 >= SHI)
{
Comment(" iClose1 <= SHI1 ", iClose1," <= ",SHI1," ||| ",iClose1," >= ",SHI1);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+SL*Point,Bid-25*Point,NULL,MAGIC1,0,Red);
}else
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-SL*Point,Ask+1000*Point,NULL,MAGIC2,0,Green);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Но ничего не получилось
<Integer 17.09.2006 14:11
Megabait писал (а):
Может чего не хватает в коде или это глюк такой.
Наоборот - избытки мешали.>
Взял приведенный текст, сохранил в mq4. Щас точки в другом месте ставит...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приглянулся мне индюк SHI_SilverTrendSig.mq4, но свои графические сигналы он почему то подаёт только после переключения таймфрейма.
Может чего не хватает в коде или это глюк такой. Я почему то грешу на индикатор.
И ещё если не сложно то может кто посоветует как довавить к нему дополнительное оповещение типа Звук ( различный на Byu и Sell) или ещё лучше в комплекте с информационным окошечком что и где сработало.
Заранее выражаю всем свою благодарность