datetime Time_bar;// в глобальных переменных//запоминаем бар по времени открытия
if(...пересечение машек...) Time_bar=Time[0];
// определяем индекс бара в любой момент
int bar=-1;
for(int i=0;i<1000;i++){
if(Time[i]==Time_bar) { bar=i;break; }
}
for(int i=1;i<Q_Bars;i++) { min_1 =ArrayMinimum(Volume, Q_Bars,1); //определяем индекс бара с минимальным объемом min_V1=iVolume(0,0,min_1); //величина этого объема
mas2[i,0]=Volume[i]; //заполняем 1-ю часть двумерного массива объемами mas2[i,1]=i; //вторую часть - соответствующими им индексами } ArraySort(mas2); //сортируем по величине объемов min_V2=mas2[2,0]; //определяем второй после минимального объем min_2=mas2[2,1]; //соответствующий ему индекс бара
H1= NormalizeDouble(High[min_2],4); //нормализуем level по знакам после запятой create_line("", H1, Ex_col_2, 0, 2); //пытаемся нарисовать линию
return(0); //Bывод: ничего не рисуется, что еще ему надо - ???? } //-------------------------------------------------------------------- void create_line(string name_line,double level,color c,int style,int w) { ObjectCreate(name_line, OBJ_HLINE, 0, 0,0); ObjectSet(name_line, OBJPROP_PRICE1, level); ObjectSet(name_line, OBJPROP_COLOR, c); ObjectSet(name_line, OBJPROP_STYLE, style); ObjectSet(name_line, OBJPROP_WIDTH, w);
インデックスバーを記憶させるには?新しいバーが表示されると、インデックスが変化します。例:波が交差した場合、次のバーはゼロバーとなる。このバーの波動値を記憶して、次のバーのインジケータ 計算に使いたいのですが。このインデックスはどのように初期化するのですか?あるいは、どうすればいいのか?
インデックスバーを覚えるには?
ありがとうございました!その方法でやってみます。
試してみましたが、結果は同じ、ゼロです。
int mas2[10][2],min_1,min_2,min_V1,min_V2;
for(int i=1;i<Q_Bars;i++)
{
min_1 =ArrayMinimum(Volume, Q_Bars,1); //определяем индекс бара с минимальным объемом
min_V1=iVolume(0,0,min_1); //величина этого объема
mas2[i,0]=Volume[i]; //заполняем 1-ю часть двумерного массива объемами
mas2[i,1]=i; //вторую часть - соответствующими им индексами
}
ArraySort(mas2); //сортируем по величине объемов
min_V2=mas2[2,0]; //определяем второй после минимального объем
min_2=mas2[2,1]; //соответствующий ему индекс бара
H1= NormalizeDouble(High[min_2],4); //нормализуем level по знакам после запятой
create_line("", H1, Ex_col_2, 0, 2); //пытаемся нарисовать линию
return(0); //Bывод: ничего не рисуется, что еще ему надо - ????
}
//--------------------------------------------------------------------
void create_line(string name_line,double level,color c,int style,int w)
{
ObjectCreate(name_line, OBJ_HLINE, 0, 0,0);
ObjectSet(name_line, OBJPROP_PRICE1, level);
ObjectSet(name_line, OBJPROP_COLOR, c);
ObjectSet(name_line, OBJPROP_STYLE, style);
ObjectSet(name_line, OBJPROP_WIDTH, w);
}
また、なぜオブジェクト名が空なのでしょうか?create_line(", H1, Ex_col_2,0,2 ) の呼び出し時に"" の代わりに"Object_name" と記述してください。
GBPUSDが開かない
int start()
{
OrderSend("GBPUSD",OP_SELL,0.1,Ask,0,Ask+400*Point,Ask-100*Point);
AlertGetLastError();
return()です。
}
で、コンパイル時にAlert GetLastError()に関連するエラーが発生します。
もしかして、ブローカーの100点が近すぎる(ブローカーで5桁)のでは?
GBPUSDが開かない
int start()
{
OrderSend("GBPUSD",OP_SELL,0.1,Ask,0,Ask+400*Point,Ask-100*Point)を実行。
アラート GetLastError()。
return()です。
}
で、コンパイル時にAlert GetLastError()に関連するエラーが発生します。
ブローカーの100pipsが近すぎる(ブローカーで5桁)ということはないでしょうか?
たぶんね、4桁だと10pptしかないから。100ではなく、少なくとも101を入れて確認する。
GBPUSDが開かない
で、コンパイル時にAlert GetLastError()に関連するエラーが書き込まれます。
は、ブローカーの100pipsが近すぎる(ブローカーで5桁)のではないでしょうか?