//////////////////////////////////////////////////////////////////////// ПОИСК САМОГО ДЛИННОГО ФЛЕТА ПО ВРЕМЕНИ +111.mq4 ////////////////////////////////////////////////////////////////////////
#property show_inputs
externint ПУНКТЫ=300;
extern datetime НАЧАЛО=D'2010.9.3';
extern datetime КОНЕЦ=D'2010.1.1';
//----------Переменные для вывода данных-------------- int FBars, //кол-во баров в коридоре
SiftBars; //индекс бараdouble PriceMin, //минимум коридора
PriceMax; //максимум коридора//----------------------------------------------------int init()
{
НАЧАЛО=iBarShift(0,0,НАЧАЛО);
КОНЕЦ=iBarShift(0,0,КОНЕЦ);
}
//----------------------------------------------------int start()
{
int i,n,D,ST,Bar;
//----
Alert("*********************");
int Shift_Min=iLowest(Symbol(),0,MODE_LOW,Bars,0); //Находим индекс минимального бараint Shift_Max=iHighest(Symbol(),0,MODE_HIGH,Bars,0); //Находим индекс максимального бараdouble Min=iLow(Symbol(),0,Shift_Min); //Находим минимум на графикеdouble Max=iHigh(Symbol(),0,Shift_Max); //Нходим максимум на графикеdouble Z=(Max-Min)/Point; //Растояние в пунктах от минимума до максимума на всем графикеdouble W=Z-ПУНКТЫ; //Переменная W нужна для ограничения бесполезных циклов по ценам ось(Y) //-------------------------------------------------------- for (i=0;i<=W;i++)//Цикл по ценам ось(Y)
{
ST=0;
for(n=НАЧАЛО;n<=КОНЕЦ&&n<Bars;n++)//Цикл по барам ось(X)
{
if(Low[n]>Min && High[n]<Min+ПУНКТЫ*Point)
{
if(ST==0)
{
Bar=n;
}
ST++;
}else
{
if(FBars<ST)
{
FBars=ST; //Сохраним кол-во баров в коридоре
PriceMin=Min; //Сохраним минимум коридора
PriceMax=Min+ПУНКТЫ*Point; //Сохраним максимум коридора
SiftBars=Bar; //Сохраним индекс бара
ST=0; //Обнуляем счетчик
}else
{
ST=0; //Обнуляем счетчик
}
}
}
Min+=1*Point; //Сдвигаем коридор на один пункт вверх
}
//--------------------- ВЫВОД ДАННЫХ --------------------
ObjectDelete("q9w8e5");
ObjectCreate("q9w8e5",OBJ_RECTANGLE,0,Time[SiftBars],PriceMin,Time[SiftBars+FBars],PriceMax);
datetime Нач=Time[SiftBars+FBars];
datetime Кон=Time[SiftBars];
Alert("Самый длинны флет в ",ПУНКТЫ," пунктов был с ",TimeDay(Нач),".",TimeMonth(Нач),".",TimeYear(Нач)," ",TimeHour(Нач),":",TimeMinute(Нач),
" по ",TimeDay(Кон),".",TimeMonth(Кон),".",TimeYear(Кон)," ",TimeHour(Кон),":",TimeMinute(Кон)," Цена : MAX = ",PriceMax," MIN = ",PriceMin,
" Кол-во баров в коридоре = ",FBars," :)");
return(0);
}
//+------------------------------------------------------------------+
ここで、いつどこで見つけたか覚えていないスクリプトを紹介します。
もしかしたら、誰かが使ってくれるかもしれない!?
何をするものなのか?
ありがとうございました。
履歴の中で何pipsのフリップに興味があるかを変数に入力すると、指定したpips数のフリップが、いつ、どのくらい続いたかを教えてくれるのです。
エラー: スクリプトはこのチャートでは動作しません。
私は何を間違えているのだろう?
5桁では動作しない
また、フラットな状態を探す時間間隔を変数に入れるようお願いします。
を探す時間間隔を変数に入れるようお願いします。
雪崩型EAの性能を評価するためにスクリプトを使用したい場合、これは静止チャンネルを持つ古典的な雪崩にのみ適しています。非定常なチャンネルを使用する場合、発散する三角形はこの場合最も危険である。