dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 Вот это просадки ...в -200 пипсов. Ссылка на комментарий Поделиться на другие сайты Поделиться
SUB Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 У меня такая же херня... Ты закрылся Dehash? Ссылка на комментарий Поделиться на другие сайты Поделиться
dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 У меня такая же херня... Ты закрылся Dehash? Нет, у меня СЛ стоит, само закроется. Не понравилось мне от середины канала открываться... Ссылка на комментарий Поделиться на другие сайты Поделиться
Kenzo Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Всем доброго времени....перечитал все ваши ветки (может пропустил, может по линке не перешол), но не могу я найти эту сетку с магическими циферками....дайте пожалуйста линк, если не трудно!За ранее благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 Всем доброго времени....перечитал все ваши ветки (может пропустил, может по линке не перешол), но не могу я найти эту сетку с магическими циферками....дайте пожалуйста линк, если не трудно!За ранее благодарен. //+----------------------------------------------------------------------+//|ZigZag с чилами Песавенто |//|----------------------------------------------------------------------+ |//|ExtHidden - 0 - все линии скрыты. Обычный ZigZag. |//| 1 - показывает все линии между фракталами, у которых |//| процент восстановления >0.21 и <5. |//| 2 - показывает только те линии, где процент восстано- | //| вления равен числам Песавенто (и 0.866 для постро- |//| ения паттернов Gartley) |//| 3 - показывает числа, перечисленные в пункте 2 |//| и соответствующие линии |//| 4 - показывает числа не Песавенто и соответствующие линии |//| |//| |//|ExtFractal - количество фракталов (максимумов, минимумов), |//| от которых идут линии к другим фракталам |//| |//|ExtFractalNext - количество фракталов, к которым идут линии |//| не реализовано |//| |//|ExtDeltaType - true - расчет допуска (%-число Песавенто)<ExtDelta |//| false - ((%-число Песавенто)/число Песавенто)<ExtDelta | |//| |//|ExtDelta - (допуск) отклонение в расчете. Задает величину |//| потенциальной разворотной зоны. |//| |//| |//| |//| |//| |//+----------------------------------------------------------------------+#property copyright "nen@.....ru"#property link "http://onix-trade.net/forum/index.php?act=post&do=reply_post&f=9&t=118" #property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Red//---- indicator parametersextern int ExtDepth=12;extern int ExtHidden=1;extern int ExtFractal=15;//extern int ExtFractalNext=2;extern double ExtDelta=0.04;extern bool ExtDeltaType=true;extern color ExtLine=DarkBlue;extern color ExtPesavento=Yellow;extern color ExtGartley866=GreenYellow;extern color ExtNotFibo=SlateGray;extern int ExtDeviation=5;extern int ExtBackstep=3; //---- indicator buffers// Массив для отрисовки ZigZagdouble zz[];// Массив минимумов черновойdouble ExtMapBuffer[];// Массив максимумов черновойdouble ExtMapBuffer2[]; // Массив чисел Песавенто (Фибы и модифицированные Фибы)double fi[]={0.382, 0.5, 0.618, 0.707, 0.786, 0.841, 0.886, 1.0, 1.128, 1.272, 1.414, 1.5, 1.618, 2.0, 2.414, 2.618, 4.0};string fitxt[]={ ".382", "0.5", ".618", ".707", ".786", ".841", ".886", "1.0", "1.128", "1.272", "1.414", "1.5", "1.618", "2.0", "2.414", "2.618", "4.0" };double HL,HLp,kk,kj,Angle;// LowPrim,HighPrim,LowLast,HighLast - значения минимумов и максимумов баровdouble LowPrim,HighPrim,LowLast,HighLast;// numLowPrim,numHighPrim,numLowLast,numHighLast -номера баровint numLowPrim,numHighPrim,numLowLast,numHighLast,k,k1,k2,ki,countLow1,countHigh1,shift;// Время свечи с первым от нулевого бара фракталомint timeFr1,timeFr1new;// Количество линий, идущих от первого от нулевого бара фрактала к соседним фракталамint countLineFr1;// Счетчик фракталовint countFr;// Бар, до которого надо пересчитывать от нулевого бараint numBar=0;// Номер объектаint numOb;//Mаксимум или минимум бара первого фракталаdouble hFr1, lFr1;// Флаги// flagFrNew=true - образовался новый фрактал или первый фрактал сместился на другой бар. =false - по умолчанию.// flagFr=true - последний фрактал максимум. false - последний фрактал минимум.bool flagLow,flagHigh,flagFr,flagFrNew=false;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() { IndicatorBuffers(5);//---- drawing settings SetIndexStyle(0,DRAW_SECTION);//---- indicator buffers mapping SetIndexBuffer(0,zz); SetIndexBuffer(1,ExtMapBuffer); SetIndexBuffer(2,ExtMapBuffer2);// SetIndexBuffer(3,aLow);// SetIndexBuffer(4,aHigh); SetIndexEmptyValue(0,0.0); ArraySetAsSeries(zz,true); ArraySetAsSeries(ExtMapBuffer,true); ArraySetAsSeries(ExtMapBuffer2,true);//---- indicator short name IndicatorShortName("ZZ("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");//---- initialization done return(0); }//+------------------------------------------------------------------+//| Деинициализация. Удаление всех трендовых линий и текстовых объектов//+------------------------------------------------------------------+int deinit(){ ObjectsDeleteAll(0,2); ObjectsDeleteAll(0,21); return(0);}//********************************************************int start() { int counted_bars=IndicatorCounted(); if( counted_bars<0 ) { Alert("Сбой расчета индикатора"); return(-1); } int shift, back,lasthighpos,lastlowpos; double val,res; double curlow,curhigh,lasthigh,lastlow; for(shift=Bars-ExtDepth; shift>=0; shift--) { val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)]; if(val==lastlow) val=0.0; else { lastlow=val; if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer[shift+back]; if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; } } } ExtMapBuffer[shift]=val; //--- high val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)]; if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-High[shift])>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer2[shift+back]; if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; } } } ExtMapBuffer2[shift]=val; } // final cutting lasthigh=-1; lasthighpos=-1; lastlow=-1; lastlowpos=-1; for(shift=Bars-ExtDepth; shift>=0; shift--) { curlow=ExtMapBuffer[shift]; curhigh=ExtMapBuffer2[shift]; if((curlow==0)&&(curhigh==0)) continue; //--- if(curhigh!=0) { if(lasthigh>0) { if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0; else ExtMapBuffer2[shift]=0; } //--- if(lasthigh<curhigh || lasthigh<0) { lasthigh=curhigh; lasthighpos=shift; } lastlow=-1; } //---- if(curlow!=0) { if(lastlow>0) { if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0; else ExtMapBuffer[shift]=0; } //--- if((curlow<lastlow)||(lastlow<0)) { lastlow=curlow; lastlowpos=shift; } lasthigh=-1; } } countLow1=0; countHigh1=0; for(shift=Bars-1; shift>=0; shift--) { zz[shift]=ExtMapBuffer[shift]; if(shift>=Bars-ExtDepth) {ExtMapBuffer2[shift]=0.0;ExtMapBuffer[shift]=0.0; zz[shift]=0.0;} else { res=ExtMapBuffer2[shift]; if(res!=0.0) zz[shift]=res; } if (ExtMapBuffer[shift]>0.0) {countLow1++;} if (ExtMapBuffer2[shift]>0.0) {countHigh1++;} } if (flagFrNew) { countLow1=0; countHigh1=0; for(shift=0; shift<=numBar; shift++) { if (ExtMapBuffer[shift]>0.0) {countLow1++;} if (ExtMapBuffer2[shift]>0.0) {countHigh1++;} } counted_bars=3; } if (Bars - counted_bars>2) { for (shift=0; shift<Bars; shift++) // Поиск времени бара первого фрактала, считая от нулевого бара { if (zz[shift]>0.0) { timeFr1=Time[shift]; if (ExtMapBuffer[shift]==zz[shift]) {lFr1=Low[shift]; hFr1=0.0;} if (ExtMapBuffer2[shift]==zz[shift]) {hFr1=High[shift]; lFr1=0.0;} break; } } //-----------1 Отрисовка максимумов. Начало.//+--------------------------------------------------------------------------+//| Вывод соединяющих линий и чисел Песавенто и 0.866 для максимумов ZigZag-a//| Отрисовка идет от нулевого бара//+--------------------------------------------------------------------------+ numLowPrim=0; numLowLast=0; numHighPrim=0; numHighLast=0; LowPrim=0.0; LowLast=0.0; HighPrim=0.0; HighLast=0.0; flagHigh=false; Angle=-100; countFr=ExtFractal; for (k=0; (k<Bars-1 && countHigh1>0 && countFr>0); k++) { if (ExtMapBuffer[k]>0.0 && LowPrim==0.0 && HighPrim>0 && ExtMapBuffer[k]==zz[k]) {LowPrim=ExtMapBuffer[k]; numLowPrim=k;} if (ExtMapBuffer[k]>0.0 && ExtMapBuffer[k]<LowPrim && HighPrim>0 && ExtMapBuffer[k]==zz[k]) {LowPrim=ExtMapBuffer[k]; numLowPrim=k;} if (ExtMapBuffer2[k]>0.0 && ExtMapBuffer2[k]==zz[k]) { if (HighPrim>0) { if (HighLast>0) { if (flagHigh) { if (ExtMapBuffer2[k]>HighLast) {HighLast=High[k]; numHighLast=k;} } else { if (ExtMapBuffer2[k]>HighPrim) flagHigh=true; HighLast=High[k]; numHighLast=k; } } else {numHighLast=k; HighLast=High[k];} HL=High[numHighLast]-Low[numLowPrim]; kj=(HighPrim-HighLast)*10000/(numHighLast-numHighPrim); if (HL>0 && (Angle>kj || Angle==-100)) // Проверка угла наклона линии { Angle=kj; // Создание линии и текстового объекта HLp=High[numHighPrim]-Low[numLowPrim]; k1=MathCeil((numHighPrim+numHighLast)/2); kj=HLp/HL; if (kj>0.21 && kj<=5) { // Создание текстового объекта (числа Песавенто). % восстановления между максимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления числа Песавенто и 0.866 { if (ExtHidden!=4 && ExtHidden>0) { ObjectCreate("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2)); if (kk==0.886) // Gartley ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial",ExtPesavento); } } else // процент восстановления (не Песавенто и 0.866) { if (ExtHidden==1 || ExtHidden==4) { ObjectCreate("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2)); ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } } if ((ExtHidden==2 && k2<0) || (ExtHidden!=0 && ExtHidden!=2)) { ObjectCreate("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TREND,0,Time[numHighPrim],High[numHighPrim],Time[numHighLast],High[numHighLast]); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_RAY,false); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_STYLE,STYLE_DOT); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_COLOR,ExtLine); } } } } else {numHighPrim=k; HighPrim=High[k];} } // Переход на следующий фрактал if (k>Bars-3) { k=numHighPrim+1; countHigh1--; countFr--; numLowPrim=0; numLowLast=0; numHighPrim=0; numHighLast=0; LowPrim=0.0; LowLast=0.0; HighPrim=0.0; HighLast=0.0; flagHigh=false; Angle=-100; } }//-----------1 Отрисовка максимумов. Конец. //-----------2 Отрисовка минимумов. Начало.//+-------------------------------------------------------------------------+//| Вывод соединяющих линий и чисел Песавенто и 0.866 для минимумов ZigZag-a//| Отрисовка идет от нулевого бара//+-------------------------------------------------------------------------+ numLowPrim=0; numLowLast=0; numHighPrim=0; numHighLast=0; LowPrim=0.0; LowLast=0.0; HighPrim=0.0; HighLast=0.0; flagLow=false; Angle=-100; if (flagFrNew) countFr=1; else countFr=ExtFractal; for (k=0; (k<Bars && countLow1>0 && countFr>0); k++) { if (ExtMapBuffer2[k]>HighPrim && LowPrim>0) {HighPrim=High[k]; numHighPrim=k;} if (ExtMapBuffer[k]>0.0 && ExtMapBuffer[k]==zz[k]) { if (LowPrim>0) { if (LowLast>0) { if (flagLow) { if (ExtMapBuffer[k]<LowLast) {LowLast=Low[k]; numLowLast=k;} } else { if (ExtMapBuffer[k]<LowPrim) flagLow=true; LowLast=Low[k]; numLowLast=k; } } else {numLowLast=k; LowLast=Low[k];} // вывод соединяющих линий и процентов восстановления(чисел Песавенто) HL=High[numHighPrim]-Low[numLowLast]; kj=(LowPrim-LowLast)*1000/(numLowLast-numLowPrim); if (HL>0 && (Angle<kj || Angle==-100)) // Проверка угла наклона линии { Angle=kj; HLp=High[numHighPrim]-Low[numLowPrim]; k1=MathCeil((numLowPrim+numLowLast)/2); kj=HLp/HL; if (kj>0.21 && kj<=5) { // Создание текстового объекта (числа Песавенто). % восстановления между минимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления числа Песавенто и 0.866 { if (ExtHidden!=4 && ExtHidden>0) { ObjectCreate("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2)); if (kk==0.886) // Gartley ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial",ExtPesavento); } } else // процент восстановления (не Песавенто и 0.866) { if (ExtHidden==1 || ExtHidden==4) ObjectCreate("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2)); ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } if ((ExtHidden==2 && k2<0) || (ExtHidden!=0 && ExtHidden!=2)) { ObjectCreate("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TREND,0,Time[numLowPrim],Low[numLowPrim],Time[numLowLast],Low[numLowLast]); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_RAY,false); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_STYLE,STYLE_DOT); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_COLOR,ExtLine); } } } } else {numLowPrim=k; LowPrim=Low[k];} } // Переход на следующий фрактал if (k>Bars-3) { k=numLowPrim+1; countLow1--; countFr--; numLowPrim=0; numLowLast=0; numHighPrim=0; numHighLast=0; LowPrim=0.0; LowLast=0.0; HighPrim=0.0; HighLast=0.0; flagLow=false; Angle=-100; } } flagFrNew=false; numBar=0;//-----------2 Отрисовка минимумов. Конец. }else // counted_bars<=2 Проверка смещений фракталов.// Коррекция соединяющих линий и чисел. Начало. { // Поиск времени бара первого фрактала, считая от нулевого бара for (shift=0; shift<Bars; shift++) { if (zz[shift]>0.0) { timeFr1new=Time[shift]; break; } } // Поиск бара, на котором был последний фрактал shift=iBarShift(Symbol(),Period(),timeFr1); // Сравнение текущего значения фрактала с тем, который был ранее // Образовался новый фрактал if (timeFr1new!=timeFr1) { flagFrNew=true; numBar=shift; } // Фрактал на максимуме сдвинулся на другой бар if (hFr1>0 && zz[shift]==0.0) { flagFrNew=true; numBar=shift; numHighPrim=shift; numHighLast=0;HighLast=0.0; for (k=shift+1; k<Bars; k++) { if (ExtMapBuffer2[k]>HighLast) { HighLast=High[k]; numHighLast=k; numOb=ObjectFind("ph" + Time[numHighPrim] + "_" + Time[numHighLast]);//if (numOb>-1) Print ("MAX_numOb>-1=",numOb); if (numOb>-1) { numOb=ObjectDelete("ph" + Time[numHighPrim] + "_" + Time[numHighLast]); //Print ("MAX_удалено numOb>-1=",numOb); ObjectDelete("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast]); } } } } // Фрактал на минимуме сдвинулся на другой бар if (lFr1>0 && zz[shift]==0.0) { flagFrNew=true; numBar=shift; flagFrNew=true; numBar=shift; numLowPrim=shift; numLowLast=0;LowLast=10000000; for (k=shift+1; k<Bars; k++) { if (ExtMapBuffer[k]<LowLast) { LowLast=Low[k]; numLowLast=k; numOb=ObjectFind("pl" + Time[numLowPrim] + "_" + Time[numLowLast]);//if (numOb>-1) Print ("MIN_numOb>-1=",numOb); if (numOb>-1) { numOb=ObjectDelete("pl" + Time[numLowPrim] + "_" + Time[numLowLast]); //Print ("MIN_удалено numOb>-1=",numOb); ObjectDelete("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast]); } } } } //-----------3 Сместился минимум или максимум, но остался на том же баре. Начало. //============= 1 сместился максимум. Начало.if (hFr1-High[shift]!=0 && hFr1>0) {// Print ("Сместился максимум на том же баре hFr1-High[shift]=",hFr1-High[shift]); numLowPrim=0; numLowLast=0; numHighPrim=shift; numHighLast=0; LowPrim=0.0; LowLast=0.0; HighPrim=High[shift]; HighLast=0.0; flagHigh=false; Angle=-100; for (k=shift+1; k<Bars; k++) { if (ExtMapBuffer[k]>0.0 && LowPrim==0.0 && ExtMapBuffer[k]==zz[k]) {LowPrim=ExtMapBuffer[k]; numLowPrim=k;} if (ExtMapBuffer[k]>0.0 && ExtMapBuffer[k]<LowPrim && ExtMapBuffer[k]==zz[k]) {LowPrim=ExtMapBuffer[k]; numLowPrim=k;} if (ExtMapBuffer2[k]>0.0 && ExtMapBuffer2[k]==zz[k]) { if (HighLast>0) { if (flagHigh) { if (ExtMapBuffer2[k]>HighLast) {HighLast=High[k]; numHighLast=k;} } else { if (ExtMapBuffer2[k]>HighPrim) flagHigh=true; HighLast=High[k]; numHighLast=k; } } else {numHighLast=k; HighLast=High[k];} HL=High[numHighLast]-Low[numLowPrim]; kj=(HighPrim-HighLast)*10000/(numHighLast-numHighPrim); if (HL>0 && (Angle>kj || Angle==-100)) // Проверка угла наклона линии { Angle=kj;// Создание линии HLp=High[numHighPrim]-Low[numLowPrim]; k1=MathCeil((shift+numHighLast)/2); kj=HLp/HL;// Поиск старой соединительной линии numOb=ObjectFind("ph" + Time[numHighPrim] + "_" + Time[numHighLast]); if (numOb>-1) { if (kj>0.21 && kj<=5) { // Перемещение объектов ObjectMove("ph" + Time[numHighPrim] + "_" + Time[numHighLast],0,Time[numHighPrim],High[numHighPrim]); ObjectMove("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2)); // Создание текстового объекта (числа Песавенто). % восстановления между максимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления число Песавенто if (ExtHidden!=4 && ExtHidden>0) { if (kk==0.886) ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial",ExtPesavento); } else // процент восстановления (не Песавенто) if (ExtHidden==1 || ExtHidden==4) ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } else { ObjectDelete("ph" + Time[numHighPrim] + "_" + Time[numHighLast]); ObjectDelete("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast]); } } else {//******* Прорисовка новой линии, если она появилась. if (kj>0.21 && kj<=5) { // Создание текстового объекта (числа Песавенто). % восстановления между максимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления числа Песавенто и 0.866 { if (ExtHidden!=4 && ExtHidden>0) { ObjectCreate("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2)); if (kk==0.886) // Gartley ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],fitxt[ki],7,"Arial",ExtPesavento); } } else // процент восстановления (не Песавенто и 0.866) { if (ExtHidden==1 || ExtHidden==4) { ObjectCreate("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TEXT,0,Time[k1],MathAbs((High[numHighPrim]+High[numHighLast])/2)); ObjectSetText("phtxt" + Time[numHighPrim] + "_" + Time[numHighLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } } if ((ExtHidden==2 && k2<0) || (ExtHidden!=0 && ExtHidden!=2)) { ObjectCreate("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJ_TREND,0,Time[numHighPrim],High[numHighPrim],Time[numHighLast],High[numHighLast]); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_RAY,false); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_STYLE,STYLE_DOT); ObjectSet("ph" + Time[numHighPrim] + "_" + Time[numHighLast],OBJPROP_COLOR,ExtLine); } }//******* } } } } hFr1=High[shift]; timeFr1=Time[shift]; }//============= 1 сместился максимум. Конец.////============= 1 сместился минимум. Начало.if (lFr1-Low[shift]!=0 && lFr1>0) {// Print ("Сместился минимум на том же баре lFr1-Low[shift]=",lFr1-Low[shift]); numLowPrim=0; numLowLast=0; numHighPrim=shift; numHighLast=0; LowPrim=Low[shift]; LowLast=0.0; HighPrim=0.0; HighLast=0.0; flagLow=false; Angle=-100; for (k=shift+1; k<Bars; k++) { if (ExtMapBuffer2[k]>HighPrim) {HighPrim=High[k]; numHighPrim=k;} if (ExtMapBuffer[k]>0.0 && ExtMapBuffer[k]==zz[k]) { if (LowLast>0) { if (flagLow) { if (ExtMapBuffer[k]<LowLast) {LowLast=Low[k]; numLowLast=k;} } else { if (ExtMapBuffer[k]<LowPrim) flagLow=true; LowLast=Low[k]; numLowLast=k; } } else {numLowLast=k; LowLast=Low[k];} HL=High[numHighPrim]-Low[numLowLast]; kj=(LowPrim-LowLast)*1000/(numLowLast-numLowPrim); if (HL>0 && (Angle<kj || Angle==-100)) // Проверка угла наклона линии { Angle=kj; HLp=High[numHighPrim]-Low[numLowPrim]; k1=MathCeil((numLowPrim+numLowLast)/2); kj=HLp/HL;// Поиск старой соединительной линии numOb=ObjectFind("pl" + Time[numLowPrim] + "_" + Time[numLowLast]); if (numOb>-1) { if (kj>0.21 && kj<=5) { // Перемещение объектов ObjectMove("pl" + Time[numLowPrim] + "_" + Time[numLowLast],0,Time[numLowPrim],Low[numLowPrim]); ObjectMove("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2)); // Создание текстового объекта (числа Песавенто). % восстановления между минимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления числа Песавенто и 0.866 { if (ExtHidden!=4 && ExtHidden>0) { if (kk==0.886) // Gartley ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial",ExtPesavento); } } else // процент восстановления (не Песавенто и 0.866) if (ExtHidden==1 || ExtHidden==4) ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } else { ObjectDelete("pl" + Time[numLowPrim] + "_" + Time[numLowLast]); ObjectDelete("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast]); } } else {//******* Прорисовка новой линии, если она появилась. if (kj>0.21 && kj<=5) { // Создание текстового объекта (числа Песавенто). % восстановления между минимумами kk=kj; k2=1; if (ExtDeltaType) for (ki=16;ki>=0;ki--) {if (MathAbs(fi[ki]-kj)<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} else for (ki=16;ki>=0;ki--) {if (MathAbs((fi[ki]-kj)/fi[ki])<=ExtDelta) {kk=fi[ki]; k2=-1; break;}} if (k2<0) // процент восстановления числа Песавенто и 0.866 { if (ExtHidden!=4 && ExtHidden>0) { ObjectCreate("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2)); if (kk==0.886) // Gartley ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial", ExtGartley866); else ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],fitxt[ki],7,"Arial",ExtPesavento); } } else // процент восстановления (не Песавенто и 0.866) { if (ExtHidden==1 || ExtHidden==4) ObjectCreate("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TEXT,0,Time[k1],MathAbs((Low[numLowPrim]+Low[numLowLast])/2)); ObjectSetText("pltxt" + Time[numLowPrim] + "_" + Time[numLowLast],""+DoubleToStr(kk,2),7,"Arial",ExtNotFibo); } if ((ExtHidden==2 && k2<0) || (ExtHidden!=0 && ExtHidden!=2)) { ObjectCreate("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJ_TREND,0,Time[numLowPrim],Low[numLowPrim],Time[numLowLast],Low[numLowLast]); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_RAY,false); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_STYLE,STYLE_DOT); ObjectSet("pl" + Time[numLowPrim] + "_" + Time[numLowLast],OBJPROP_COLOR,ExtLine); } } //******* } } } } lFr1=Low[shift]; timeFr1=Time[shift]; }//============= 1 сместился минимум. Конец.//-----------3 Сместился минимум или максимум, но остался на том же баре. Конец. // Коррекция. Конец. } // end} Ссылка на комментарий Поделиться на другие сайты Поделиться
Kenzo Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Спасибо конечно, но не подскажете почему его нет в списке индикаторов? Ссылка на комментарий Поделиться на другие сайты Поделиться
dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 Он есть, но в оригинальной теме (ссылка на тему в первом посте). Но и там её будет трудно найти, так как тема разрослась. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kenzo Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Я припоминаю этот код, но действительно его трудно будет найти....если Вас не затруднит, скиньте плиз скомпилированный индикатор (mq4), можно на почту kenzo-x-master()yandex.ru Ссылка на комментарий Поделиться на другие сайты Поделиться
Kenzo Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
justMAX Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Нда, я проигрался неплохо, самое противное, что пары, которые меня выбросили по стопам, все равно пойдут по сигналам. Теперь не буду входить после коррекций, да и от стопов наверно откажусь. Ссылка на комментарий Поделиться на другие сайты Поделиться
духLess Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 (изменено) какие не хорошие люди продают AUDCAD ( полный перегруз ... он как с камнем на шее ) Изменено 10 августа, 2007 пользователем духLess Ссылка на комментарий Поделиться на другие сайты Поделиться
malchik Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 какие не хорошие люди продают AUDCAD ( полный перегруз ... он как с камнем на шее ) И NZDCAD тоже тянет все глубже и глубже! Ссылка на комментарий Поделиться на другие сайты Поделиться
dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 EURJPY "-100" пипсов.AUDJPY "-88" пипсов Все пары возвращались к цене, по которой откывался. Ссылка на комментарий Поделиться на другие сайты Поделиться
yavmen Опубликовано 10 августа, 2007 Жалоба Поделиться Опубликовано 10 августа, 2007 Следовательно! что то в системе ни так! но...... Ссылка на комментарий Поделиться на другие сайты Поделиться
dehash Опубликовано 10 августа, 2007 Автор Жалоба Поделиться Опубликовано 10 августа, 2007 (изменено) EURCHF, AUDCAD сигнал на покупку. Изменено 10 августа, 2007 пользователем dehash Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения