TOHEY Опубликовано 3 ноября, 2009 Жалоба Поделиться Опубликовано 3 ноября, 2009 Здравствуйте! Думаю, только здесь мне могут помочь с этой проблемой. Пользовательский индикатор "параболик" дает ложные показания до тех пор, пока не вызовешь свойства и не кликнешь "ОК", или не удалишь из графика и не установишь заново. Причем оба, а у меня их два пользовательских. Тот, что стандартный в МТ4 - в порядке. Может кто-нибудь знает в чем здесь загвоздка? Ссылка на комментарий Поделиться на другие сайты Поделиться
MAMOHT Опубликовано 5 ноября, 2009 Жалоба Поделиться Опубликовано 5 ноября, 2009 Код надо смотреть. А чем не устраиваем стандартный? Ссылка на комментарий Поделиться на другие сайты Поделиться
TOHEY Опубликовано 5 ноября, 2009 Жалоба Поделиться Опубликовано 5 ноября, 2009 Код надо смотреть. А чем не устраиваем стандартный?В одной ТС используется именно этот. В принципе, можно и другой. Мне просто не понятно, в чем проблема. Вот код, если бы я что-то в этом понял... //+------------------------------------------------------------------+//| Parabolic-close.mq4 |//| Copyright © 2008, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright © 2008, MetaQuotes Software Corp."#property link "http://www.metaquotes.net" #property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Blue#property indicator_width1 2//---- input parametersextern double Step=0.005;extern double Maximum=0.2;//---- buffersdouble SarBuffer[];//----int save_lastreverse;bool save_dirlong;double save_start;double save_last_high;double save_last_low;double save_ep;double save_sar;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() {//---- indicators SetIndexStyle(0,DRAW_SECTION); SetIndexArrow(0,159); SetIndexBuffer(0,SarBuffer);//---- return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void SaveLastReverse(int last,int dir,double start,double low,double high,double ep,double sar) { save_lastreverse=last; save_dirlong=dir; save_start=start; save_last_low=low; save_last_high=high; save_ep=ep; save_sar=sar; }//+------------------------------------------------------------------+//| Parabolic Sell And Reverse system |//+------------------------------------------------------------------+int start() { static bool first=true; bool dirlong; double start,last_high,last_low; double ep,sar,price_low,price_high,price; int i,counted_bars=IndicatorCounted();//---- if(Bars<3) return(0);//---- initial settings i=Bars-2; if(counted_bars==0 || first) { first=false; dirlong=true; start=Step; last_high=-10000000.0; last_low=10000000.0; while(i>0) { save_lastreverse=i; price_low=Close; if(last_low>price_low) last_low=price_low; price_high=Close; if(last_high<price_high) last_high=price_high; if(price_high>Close[i+1] && price_low>Close[i+1]) break; if(price_high<Close[i+1] && price_low<Close[i+1]) { dirlong=false; break; } i--; } //---- initial zero int k=i; while(k<Bars) { SarBuffer[k]=0.0; k++; } //---- check further if(dirlong) { SarBuffer=Close[i+1]; ep=Close; } else { SarBuffer=Close[i+1]; ep=Close; } i--; } else { i=save_lastreverse; start=save_start; dirlong=save_dirlong; last_high=save_last_high; last_low=save_last_low; ep=save_ep; sar=save_sar; }//---- while(i>=0) { price_low=Close; price_high=Close; //--- check for reverse if(dirlong && price_low<SarBuffer[i+1]) { SaveLastReverse(i,true,start,price_low,last_high,ep,sar); start=Step; dirlong=false; ep=price_low; last_low=price_low; SarBuffer=last_high; i--; continue; } if(!dirlong && price_high>SarBuffer[i+1]) { SaveLastReverse(i,false,start,last_low,price_high,ep,sar); start=Step; dirlong=true; ep=price_high; last_high=price_high; SarBuffer=last_low; i--; continue; } //--- price=SarBuffer[i+1]; sar=price+start*(ep-price); if(dirlong) { if(ep<price_high && (start+Step)<=Maximum) start+=Step; if(price_high<Close[i+1] && i==Bars-2) sar=SarBuffer[i+1]; price=Close[i+1]; if(sar>price) sar=price; price=Close[i+2]; if(sar>price) sar=price; if(sar>price_low) { SaveLastReverse(i,true,start,price_low,last_high,ep,sar); start=Step; dirlong=false; ep=price_low; last_low=price_low; SarBuffer=last_high; i--; continue; } if(ep<price_high) { last_high=price_high; ep=price_high; } } else { if(ep>price_low && (start+Step)<=Maximum) start+=Step; if(price_low<Close[i+1] && i==Bars-2) sar=SarBuffer[i+1]; price=Close[i+1]; if(sar<price) sar=price; price=Close[i+2]; if(sar<price) sar=price; if(sar<price_high) { SaveLastReverse(i,false,start,last_low,price_high,ep,sar); start=Step; dirlong=true; ep=price_high; last_high=price_high; SarBuffer=last_low; i--; continue; } if(ep>price_low) { last_low=price_low; ep=price_low; } } SarBuffer=sar; i--; }// sar=SarBuffer[0];// price=iSAR(NULL,0,Step,Maximum,0);// if(sar!=price) Print("custom=",sar," SAR=",price," counted=",counted_bars);// if(sar==price) Print("custom=",sar," SAR=",price," counted=",counted_bars);//---- return(0); }//+------------------------------------------------------------------+ Ссылка на комментарий Поделиться на другие сайты Поделиться
TOHEY Опубликовано 5 ноября, 2009 Жалоба Поделиться Опубликовано 5 ноября, 2009 Скажите, пожалуйста, кто-нибудь может на этот работающий параболик звонок поставить на момент его разворота, что б на каждый его разворот он выдавал один звонок? Знаю, люди будут благодарны. Ну на крайний случай на этот (визуально классический)://+------------------------------------------------------------------+//| Parabolic Sub.mq4 |//| Copyright © 2004, MetaQuotes Software Corp. |//| http://www.metaquotes.net/ |//+------------------------------------------------------------------+#property copyright "Copyright © 2004, MetaQuotes Software Corp."#property link "http://www.metaquotes.net/"//----//Added Fix1 September 6, 2006 Advance Index if new bar by Stanley Fiala http://merlin4x.com#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 DodgerBlue//---- input parametersextern double Step = 0.02;extern double Maximum = 0.2;//---- buffersdouble SarBuffer[];//----int save_lastreverse;bool save_dirlong;double save_start;double save_last_high;double save_last_low;double save_ep;double save_sar;int bartime;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() {//---- indicators SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 159); SetIndexBuffer(0, SarBuffer);//---- return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void SaveLastReverse(int last, int dir, double start, double low, double high, double ep, double sar) { save_lastreverse = last; save_dirlong = dir; save_start = start; save_last_low = low; save_last_high = high; save_ep = ep; save_sar = sar; }//+------------------------------------------------------------------+//| Parabolic Sell And Reverse system |//+------------------------------------------------------------------+int start() { static bool first = true; bool dirlong; double start, last_high, last_low; double ep, sar, price_low, price_high, price; int i, counted_bars = IndicatorCounted();//---- if(Bars < 3) return(0);//---- initial settings i = Bars - 2;//---- if(counted_bars == 0 || first) { first = false; dirlong = true; start = Step; last_high = -10000000.0; last_low = 10000000.0; //---- while(i > 0) { save_lastreverse = i; price_low = Low; //---- if(last_low > price_low) last_low = price_low; price_high = High; //---- if(last_high < price_high) last_high = price_high; //---- if(price_high > High[i+1] && price_low > Low[i+1]) break; //---- if(price_high < High[i+1] && price_low < Low[i+1]) { dirlong = false; break; } i--; } //---- initial zero int k = i; Print(" k=", k, " Bars=", Bars); //---- while(k < Bars) { SarBuffer[k] = 0.0; k++; } //---- check further if(dirlong) { SarBuffer = Low[i+1]; ep = High; } else { SarBuffer = High[i+1]; ep = Low; } i--; } else { i = save_lastreverse; start = save_start; dirlong = save_dirlong; last_high = save_last_high; last_low = save_last_low; ep = save_ep; sar = save_sar; // Fix1 start // If new bar increment index if(Time[0] != bartime) { bartime = Time[0]; i++; } //Fix1 end }//---- while(i >= 0) { price_low = Low; price_high = High; //--- check for reverse from long to short if(dirlong && price_low < SarBuffer[i+1]) { SaveLastReverse(i, true, start, price_low, last_high, ep, sar); start = Step; dirlong = false; ep = price_low; last_low = price_low; SarBuffer = last_high; i--; continue; } //--- check for reverse from short to long if(!dirlong && price_high > SarBuffer[i+1]) { SaveLastReverse(i, false, start, last_low, price_high, ep, sar); start = Step; dirlong = true; ep = price_high; last_high = price_high; SarBuffer = last_low; i--; continue; } //sar(i) = sar(i+1)+start*(ep-sar(i+1)) price = SarBuffer[i+1]; sar = price + start*(ep - price); //---- if(dirlong) { if(ep < price_high && (start + Step) <= Maximum) start += Step; //---- if(price_high < High[i+1] && i == Bars - 2) sar = SarBuffer[i+1]; price = Low[i+1]; //---- if(sar > price) sar = price; price = Low[i+2]; //---- if(sar > price) sar = price; //---- if(sar > price_low) { SaveLastReverse(i, true, start, price_low, last_high, ep, sar); start = Step; dirlong = false; ep = price_low; last_low = price_low; SarBuffer = last_high; i--; continue; } //---- if(ep < price_high) { last_high = price_high; ep = price_high; } } //dir-long else { if(ep > price_low && (start + Step) <= Maximum) start += Step; //---- if(price_low < Low[i+1] && i == Bars - 2) sar = SarBuffer[i+1]; price = High[i+1]; //---- if(sar < price) sar = price; price = High[i+2]; //---- if(sar < price) sar = price; //---- if(sar < price_high) { SaveLastReverse(i, false, start, last_low, price_high, ep,sar); start = Step; dirlong = true; ep = price_high; last_high = price_high; SarBuffer = last_low; i--; continue; } //---- if(ep > price_low) { last_low = price_low; ep = price_low; } } //dir-short SarBuffer = sar; i--; } //while // sar=SarBuffer[0];// price=iSAR(NULL,0,Step,Maximum,0);// if(sar!=price) Print("custom=",sar," SAR=",price," counted=",counted_bars);// if(sar==price) Print("custom=",sar," SAR=",price," counted=",counted_bars);//---- return(0); }//+------------------------------------------------------------------+ Ссылка на комментарий Поделиться на другие сайты Поделиться
TOHEY Опубликовано 8 ноября, 2009 Жалоба Поделиться Опубликовано 8 ноября, 2009 Есть вариант так же изменить этот, т.к. выдает звонок на каждый тик в течение бара, а это неудобно, когда бар часовой или даже 15 минут. Нужен один звонок на один разворот параболика (максимум в течение 1 минуты при любом таймфрейме). //+------------------------------------------------------------------+//| Parabolic_Alert.mq4 |//| Original file name: Parabolic.mq4 |//| Copyright © 2004, MetaQuotes Software Corp. |//| http://www.metaquotes.net/ |//| Modified to give audible alarm on reversal |//| Modified by Jim Arner, Sr. |//+------------------------------------------------------------------+#property copyright "Copyright © 2004, MetaQuotes Software Corp."#property link "http://www.metaquotes.net/"//----#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 DarkOrange//---- input parametersextern double Step=0.05;extern double Maximum=0.3;//---- buffersdouble SarBuffer[];//----int save_lastreverse;bool save_dirlong, save_dirshort;double save_start;double save_last_high;double save_last_low;double save_ep;double save_sar;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() {//---- indicators IndicatorDigits(Digits); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,158); SetIndexBuffer(0,SarBuffer);//---- return(0); }//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void SaveLastReverse(int last,int dir_l,int dir_s,double start,double low,double high,double ep,double sar) { save_lastreverse=last; save_dirlong=dir_l; save_dirshort=dir_s; save_start=start; save_last_low=low; save_last_high=high; save_ep=ep; save_sar=sar; }//+------------------------------------------------------------------+//| Parabolic Sell And Reverse system |//+------------------------------------------------------------------+int start() { static bool first=true; bool dirlong, dirshort; double start,last_high,last_low; double ep,sar,price_low,price_high,price; int i,counted_bars=IndicatorCounted(); string TradeTime;//---- if(Bars<3) return(0);//---- initial settings i=Bars-2; if(counted_bars==0 || first) { first=false; dirlong=true; dirshort=false; start=Step; last_high=-10000000.0; last_low=10000000.0; while(i>0) { save_lastreverse=i; price_low=Low; if(last_low>price_low) last_low=price_low; price_high=High; if(last_high<price_high) last_high=price_high; if(price_high>High[i+1] && price_low>Low[i+1]) break; if(price_high<High[i+1] && price_low<Low[i+1]) { dirlong=false; break; } i--; } //---- initial zero int k=i; while(k<Bars) { SarBuffer[k]=0.0; k++; } //---- check further if(dirlong) { SarBuffer=Low[i+1]; ep=High; } if(dirshort) { SarBuffer=High[i+1]; ep=Low; } i--; } else { i=save_lastreverse+1; start=save_start; dirlong=save_dirlong; dirshort=save_dirshort; last_high=save_last_high; last_low=save_last_low; ep=save_ep; sar=save_sar; }//---- while(i>=0) { price_low=Low; price_high=High; //--- check for reverse if(dirlong==true && price_low<SarBuffer[i+1]) { // Print("Section 1 Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); SaveLastReverse(i,true,false,start,price_low,last_high,ep,sar); start=Step; dirlong=false; dirshort=true; // Comment("I= ",i); if (i==0) { PlaySound("alert.wav"); TradeTime=TimeToStr(CurTime(),TIME_SECONDS); Comment("\nSell Alert","\nChart Time= ", TradeTime); } ep=price_low; last_low=price_low; SarBuffer=last_high; i--; continue; } if(dirshort==true && price_high>SarBuffer[i+1]) { // Print("Section 2 Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); SaveLastReverse(i,false,true,start,last_low,price_high,ep,sar); start=Step; dirlong=true; dirshort=false; // Comment("I= ",i); if (i==0) { PlaySound("alert.wav"); TradeTime=TimeToStr(CurTime(),TIME_SECONDS); Comment("\nBuy Alert","\nChart Time= ", TradeTime); } ep=price_high; last_high=price_high; SarBuffer=last_low; i--; continue; } //--- price=SarBuffer[i+1]; sar=price+start*(ep-price); if(dirlong) { /* Comment("DirLong","\nI= ",i,"\nDirL ",dirlong,"\nDirS ",dirshort, "\nStart= ",start,"\nLow= ",last_low,"\nHigh= ",last_high, "\nEP= ",ep,"\nSAR= ",sar,"\nMinute= ",Minute()); */ // Print("Section 3 Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); if(ep<price_high && (start+Step)<=Maximum) start+=Step; if(price_high<High[i+1] && i==Bars-2) sar=SarBuffer[i+1];//---- price=Low[i+1]; if(sar>price) sar=price; price=Low[i+2]; if(sar>price) sar=price; if(sar>price_low) { SaveLastReverse(i,true,false,start,price_low,last_high,ep,sar); start=Step; dirlong=false; dirshort=true; ep=price_low; last_low=price_low; SarBuffer=last_high; i--; /* if (i == 0) { Print("Section 3a Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); } */ if (dirshort && i==0) { PlaySound("alert.wav"); TradeTime=TimeToStr(CurTime(),TIME_SECONDS); Comment("\nSell Alert","\nChart Time= ", TradeTime); } continue; } if(ep<price_high) { last_high=price_high; ep=price_high; } } if(dirshort) { /* Comment("DirShort","\nI= ",i,"\nDirL ",dirlong,"\nDirS ",dirshort, "\nStart= ",start,"\nLow= ",last_low,"\nHigh= ",last_high, "\nEP= ",ep,"\nSAR= ",sar,"\nMinute= ",Minute()); */ // Print("Section 4 Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); if(ep>price_low && (start+Step)<=Maximum) start+=Step; if(price_low<Low[i+1] && i==Bars-2) sar=SarBuffer[i+1];//---- price=High[i+1]; if(sar<price) sar=price; price=High[i+2]; if(sar<price) sar=price; if(sar<price_high) { SaveLastReverse(i,false,true,start,last_low,price_high,ep,sar); start=Step; dirlong=true; dirshort=false; ep=price_high; last_high=price_high; SarBuffer=last_low; i--; /* if (i == 0) { Print("Section ###### Code executing"," I= ",i," DirLong= ",dirlong," DirShort= ",dirshort); } */ if (dirlong && i==0) { PlaySound("alert.wav"); TradeTime=TimeToStr(CurTime(),TIME_SECONDS); Comment("\nBuy Alert","\nChart Time= ", TradeTime); } continue; } if(ep>price_low) { last_low=price_low; ep=price_low; } } SarBuffer=sar; i--; } // sar=SarBuffer[0]; // price=iSAR(NULL,0,Step,Maximum,0); // if(sar!=price) Print("custom=",sar," SAR=",price," counted=",counted_bars); // if(sar==price) Print("custom=",sar," SAR=",price," counted=",counted_bars);//---- return(0); }//+------------------------------------------------------------------+ Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander7 Опубликовано 9 ноября, 2009 Жалоба Поделиться Опубликовано 9 ноября, 2009 Здравствуйте! Прозба к программистам.Как написать alert.Чтобы при пересечении двух скользящих издавался звуковой сигнал. С Уважением АлександрNDuet_T101.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
TOHEY Опубликовано 11 ноября, 2009 Жалоба Поделиться Опубликовано 11 ноября, 2009 Здравствуйте! Прозба к программистам.Как написать alert.Чтобы при пересечении двух скользящих издавался звуковой сигнал. С Уважением АлександрВот. Нашел этот индюк случайно, пока искал параболик со звонком. 2 настраиваемых МА+алерт. Удачи!2xMA.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
jr-72 Опубликовано 11 ноября, 2009 Жалоба Поделиться Опубликовано 11 ноября, 2009 Здраствуйте.Есть желание, несколько раз писал об этом, но увы не смог получить ответ.Желание такое: Есть "Туннельный метод Вегаса" основанный на вход в рынок от пробития туннеля, когда валюты выйдут из туннеля, образованные от ЕМА 144 и 169 на часовом графике. При этом цели (если вверх конечно эти цыфры добавляются к показателю точки старта, а если вниз - то отнимаются от него) такие: 1)=55, 2)=89, 3)=144, 4)=233, 5)=377. Похож на использование Фибо-сетки, но в отличии от Фибо-сетки (у фибо есть две точки), при этом виде определения целей используется только одна точка - точка старта. И от точки старта вверх и вниз чтобы показывался вышеуказанные уровни.Например: точка старта 1.6500: если пойдет вверх к нему индикатор (или скрипт) плюсует 55, 89. 144, 233 377 и мы видим эти уровни = 1.6555, 1.6589 ... , а если вниз, то от него индикатор (или скрипт) отнимает 55,89,144,233,377 и показывает уровни на подобии фибо-сетки.Спасибо заранее кто отклыкнется. Ссылка на комментарий Поделиться на другие сайты Поделиться
fxrm Опубликовано 16 ноября, 2009 Жалоба Поделиться Опубликовано 16 ноября, 2009 Всем доброго времени суток, успехов и профита!Пытался на днях доработать индикатор ks99 (Александра) АО_ZZ,чтобы рисовал волны не по пересечению 0, а по пересечению линии баланса Зотикаи возможностью менять цвета импульсных и коррекционных волн, не получается;(((Просьба к более опытным коллегам и модераторам ветки помочь и подсказать как и что!В архиве индикатор и картинка.Азы MQL знакомы. Заранее СПАСИБО! С Уважением,СергейAO_ZZ_Color.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Yeg Опубликовано 10 декабря, 2009 Жалоба Поделиться Опубликовано 10 декабря, 2009 Здраствуйте.Есть желание, несколько раз писал об этом, но увы не смог получить ответ.Желание такое: Есть "Туннельный метод Вегаса" основанный на вход в рынок от пробития туннеля, когда валюты выйдут из туннеля, образованные от ЕМА 144 и 169 на часовом графике. При этом цели (если вверх конечно эти цыфры добавляются к показателю точки старта, а если вниз - то отнимаются от него) такие: 1)=55, 2)=89, 3)=144, 4)=233, 5)=377. Похож на использование Фибо-сетки, но в отличии от Фибо-сетки (у фибо есть две точки), при этом виде определения целей используется только одна точка - точка старта. И от точки старта вверх и вниз чтобы показывался вышеуказанные уровни.Например: точка старта 1.6500: если пойдет вверх к нему индикатор (или скрипт) плюсует 55, 89. 144, 233 377 и мы видим эти уровни = 1.6555, 1.6589 ... , а если вниз, то от него индикатор (или скрипт) отнимает 55,89,144,233,377 и показывает уровни на подобии фибо-сетки.Спасибо заранее кто отклыкнется.//+------------------------------------------------------------------+//| Тунель Вегаса.mq4 |//| Yeg |//| |//+------------------------------------------------------------------+#property copyright "Yeg"#property link "" #property indicator_chart_window#property indicator_buffers 2#property indicator_color1 DeepSkyBlue#property indicator_color2 Blue//---- input parametersextern int ПериодМА1=144;extern int ПериодМА2=169;extern int Уровень1=55;extern int Уровень2=89;extern int Уровень3=144;extern int Уровень4=233;extern int Уровень5=377;extern color Цель1=Red;extern color Цель2=Orange; extern color Цель3=Green;extern color Цель4=Yellow;extern color Цель5=Gold;//---- buffersdouble ExtMapBuffer1[];double ExtMapBuffer2[];double l1,l2,l3,l4,l5,tv;//+------------------------------------------------------------------+int init() {//---- indicators SetIndexStyle(0,DRAW_LINE,0,2); SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(1,DRAW_LINE,0,2); SetIndexBuffer(1,ExtMapBuffer2); return(0); }//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit() { //---- return(0); }//+------------------------------------------------------------------+ //Эта функция показывает линии void Make() { ObjectCreate("Line1",OBJ_HLINE,0,0,l1); ObjectCreate("Line2",OBJ_HLINE,0,0,l2); ObjectCreate("Line3",OBJ_HLINE,0,0,l3); ObjectCreate("Line4",OBJ_HLINE,0,0,l4); ObjectCreate("Line5",OBJ_HLINE,0,0,l5); ObjectSet("Line1",OBJPROP_COLOR,Цель1); ObjectSet("Line2",OBJPROP_COLOR,Цель2); ObjectSet("Line3",OBJPROP_COLOR,Цель3); ObjectSet("Line4",OBJPROP_COLOR,Цель4); ObjectSet("Line5",OBJPROP_COLOR,Цель5); }//Эта функция прячет линии void Del() { ObjectDelete("Line1"); ObjectDelete("Line2"); ObjectDelete("Line3"); ObjectDelete("Line4"); ObjectDelete("Line5"); } //+------------------------------------------------------------------+int start() { int limit,counted_bars=IndicatorCounted(); if(counted_bars<0)return(-1); if(counted_bars>0)counted_bars--; limit=Bars-counted_bars; for(int i=0;i<limit;i++) { ExtMapBuffer1=iMA(NULL,0,ПериодМА1,0,MODE_EMA,PRICE_CLOSE,i); ExtMapBuffer2=iMA(NULL,0,ПериодМА2,0,MODE_EMA,PRICE_CLOSE,i); if (Close[1]>ExtMapBuffer2 && Close[2]<ExtMapBuffer2) { Del(); tv=ExtMapBuffer2; l1=tv+Уровень1*Point; l2=tv+Уровень2*Point; l3=tv+Уровень3*Point; l4=tv+Уровень4*Point; l5=tv+Уровень5*Point; Make(); }//----------------------- if (Close[1]<ExtMapBuffer1 && Close[2]>ExtMapBuffer1) { Del(); tv=ExtMapBuffer1; l1=tv-Уровень1*Point; l2=tv-Уровень2*Point; l3=tv-Уровень3*Point; l4=tv-Уровень4*Point; l5=tv-Уровень5*Point; Make(); } } return(0);}//+------------------------------------------------------------------+По изученному в этой ветке получилось так, вроде работает! За точку входа считается первое закрытие вверх или вниз от туннеля.Буду Благодарен если кто подскажет, что не так!Уважаемый Liv, а Вы будете продолжать уроки? Ссылка на комментарий Поделиться на другие сайты Поделиться
Yeg Опубликовано 10 декабря, 2009 Жалоба Поделиться Опубликовано 10 декабря, 2009 Случайна отправио 2 раза Ссылка на комментарий Поделиться на другие сайты Поделиться
Карлсон Опубликовано 22 июля, 2010 Жалоба Поделиться Опубликовано 22 июля, 2010 Здравствуйте коллеги.Приходится сидеть с ребенком и процесс контроля за ценой бывает затруднителен.Не могли бы .если не трудно. скрипт сделать для такого отображения цены как на рисунке.Спасибо.Буду очень признателен.http://s61.radikal.ru/i173/1007/34/2eaf2cf0c259.jpg Ссылка на комментарий Поделиться на другие сайты Поделиться
jr-72 Опубликовано 23 июля, 2010 Жалоба Поделиться Опубликовано 23 июля, 2010 Здраствуйте....Спасибо заранее кто отклыкнется. //+------------------------------------------------------------------+//| Тунель Вегаса.mq4 |//| Yeg |//| |//+------------------------------------------------------------------+... По изученному в этой ветке получилось так, вроде работает! За точку входа считается первое закрытие вверх или вниз от туннеля.Буду Благодарен если кто подскажет, что не так! Спасибо большое за проделанный труд. Респект. Вот картина что получилось: http://i065.radikal.ru/1007/ca/ad0ba9946994.png То есть он ведет отсчет не от уровня канала, откуда оттолкнулась цена (на рисунке указан уровень 0.8755 и от него хотелось узнать цели), а от уровня последней цены (показаны синими стрелками вниз). Кто-то сделал такую прогу: Vegas.zip - на картинке квадрат внутри графика и его бычьи цели от 0.8755... Здесь есть сам метод, чтобы было представление о методе: Туннельный метод Вегаса. (в конце поста №-33) Еще раз спасибо. P.S. Может индикатор действительно показывает те цели в момент оттолкнения от уровня канала, но я не наблюдал... это первичная картина того, после чего я повесил этот индикатор на график. ... Ссылка на комментарий Поделиться на другие сайты Поделиться
Сергей Дабровский Опубликовано 27 июля, 2010 Жалоба Поделиться Опубликовано 27 июля, 2010 Здраствуйте....Спасибо заранее кто отклыкнется. //+------------------------------------------------------------------+//| Тунель Вегаса.mq4 |//| Yeg |//| |//+------------------------------------------------------------------+... По изученному в этой ветке получилось так, вроде работает! За точку входа считается первое закрытие вверх или вниз от туннеля.Буду Благодарен если кто подскажет, что не так! Спасибо большое за проделанный труд. Респект. Вот картина что получилось: http://i065.radikal.ru/1007/ca/ad0ba9946994.png То есть он ведет отсчет не от уровня канала, откуда оттолкнулась цена (на рисунке указан уровень 0.8755 и от него хотелось узнать цели), а от уровня последней цены (показаны синими стрелками вниз). Кто-то сделал такую прогу: Vegas.zip - на картинке квадрат внутри графика и его бычьи цели от 0.8755... Здесь есть сам метод, чтобы было представление о методе: Туннельный метод Вегаса. (в конце поста №-33) Еще раз спасибо. P.S. Может индикатор действительно показывает те цели в момент оттолкнения от уровня канала, но я не наблюдал... это первичная картина того, после чего я повесил этот индикатор на график. ... Интересно ) Со своей стороны тоже благодарность авторам. Ссылка на комментарий Поделиться на другие сайты Поделиться
Zlotik Опубликовано 30 июля, 2010 Жалоба Поделиться Опубликовано 30 июля, 2010 Поздравляю всех с днем Системного Администратора,двигателя высоких технологий. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения