[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 183

 
Craft:

こんにちは。

配列の中で最も高い終値を求める方法を教えてください。

double hc = iClose(NULL, 0, iHighest(Symbol(), 0, MODE_HIGH, PERIOD_M1, kk));

このように行われているのでしょうか、それとも私の勘違いでしょうか?

最高値引け」で検索しても答えが見つからなかった。

たぶん、こんな感じだと思います。

string sym;int PER=1;//таймфрейм
//+------------------------------------------------------------------+
//| script program                                                   |
//+------------------------------------------------------------------+
int init(){sym=Symbol();return(0);}
int start(){int bar=iHighest(sym,PER,MODE_CLOSE,iBars(sym,PER)-1,0);
  double hc=iClose(NULL,PER,bar);Print(sym," PERIOD_M",PER,"  max_close =",hc,"  Time =",
  TimeToStr(iTime(NULL,PER,bar),TIME_DATE|TIME_MINUTES));return(0);}
//+------------------------------------------------------------------+
 
MikeM:
Time[i] - チャート上のi番目のバーに対応する時間です。
チャート上の「明日の」データについて理解できない。どこで上映しているのでしょうか?うおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

これは私のインジケータの非常に古いバージョンです...。
私はちょうどそこに矢印を配置するために私のための適切な時間にバーをカウントしていた - しかし、これは正しいバージョンではありません、いくつかのケースでは休日だし、ちょうど取引セッションの時間と楽器(この場合、それはsberbankです)ので

今、完全にコードを書き直したので、大丈夫なようにしたいのですが...。

最後の青い矢印の下のX軸に=)時間の値を取得し、位置を確認したい。

実は、新しいバージョンのインジケータは、X軸(時間)に沿った次の矢印の位置と価格の情報を配列に持っていて、あとはそれをチャート上に置くだけなのですが......一般的に、助けてください。

旧バージョンのスクリーンショット...

с

[Deleted]  
を回答している人がいます。)
 

こんにちは。この条件下では、注文はレベルを通して開かれないので、アドバイスしていただけませんか。ここで何が問題なのか?

double Mash_Price_1=iCustom(NULL,0,"mashka",0,0);
double Mash_Price_2=iCustom(NULL,0,"mashka",0,1);
double Mash_Price_3=iCustom(NULL,0,"mashka",0,2);

double Max_1,Max_2; //уровень цены 

if(Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3<Max_1 || 

Mash_Price_1>Max_1 && Mash_Price_2 < Max_1 && Mash_Price_3<Max_1 ||

Mash_Price_1>Max_1 && Mash_Price_2==Max_1 && Mash_Price_3==Max_1)
{
Opn_B=true;
Opn_S=false;
}
if(Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2 > Min_1 && Mash_Price_3>Min_1 ||
Mash_Price_1<Min_1 && Mash_Price_2==Min_1 && Mash_Price_3==Min_1)
{
Opn_B=false;
Opn_S=true;
}
}



while(true)
{
if(Total==0 && Opn_B==true)
{
RefreshRates();
SL=Bid-New_Stop(StopLoss)*Point;
TP=Bid+New_Stop(TakeProfit)*Point;
Print("Попытка открыть Buy. Ожидаем ответа...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Buy ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return; 
}

if(Total==0 && Opn_S==true)
{
RefreshRates();
SL=Ask+New_Stop(StopLoss)*Point;
TP=Ask-New_Stop(TakeProfit)*Point;
Print("Попытка открыть Sell. Ждем ответа...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
if(Ticket>0)
{
Print("Открыт ордер Sell ",Ticket);
return;
}
if(Fun_Error(GetLastError())==1)
continue;
return;
}
 
deyron:

こんにちは。この条件下では、注文はレベルを通して開かれないので、アドバイスしていただけませんか。ここで何が問題なのか?


コード挿入の ためのボタンSRCがあります

これらの変数が等しいとするものは何ですか?

double Max_1,Max_2; //уровень цены 
 
int Bar_Beg = iBarShift(Symbol(),0,Cur_Beg,false);//начальный бар
int Bar_End = iBarShift(Symbol(),0,Cur_End,false);//конечный бар
int Dif_Bar = Bar_Beg - Bar_End;//Разница баров для расчетов Мах и Мин

int High_1 = iHighest(Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Максимальное значение бара
int Low_1 = iLowest (Symbol(),0,MODE_HIGH,Dif_Bar,Bar_End); //Минимальное значение бара

Max_1=High[High_1];
Min_1=Low[Low_1];

また、Mashka=(High[i]+Low[i])/2です。

 
deyron:

レベルMin_1を持つマシュカです。

ここで、もしもの時のために。


グリーンマックス_1。

しじょうより

Max_1 = 1.5485 Min_1 = 1.5461 Mash_Price_1 = 1.5496 Mash_Price_2 = 1.5495 Mash_Price_3 = 1.549

どの方向にトラブルを見出すか?

エラー処理は 試されましたか?
 
注文を開こうとする試みがあった場合、メッセージにエラーが表示されます。注文を開こうとする試みがないのであれば、なぜエラーになるのでしょうか。問題は、マハがレベルを通過する条件が正しく設定されているかどうかです。パラメータがハードコードされているのに、なぜ注文が予想よりずっと遅れて開始されるのですか?
削除済み  

質問です。

コンディションが上がらない理由

if(Close_1>Open_1 && ( Close_1-Open_1)>=30*Point) buffer[i]=High_1;

条件付きの例です。\

全てに見える...しかし、ポイントでの大きさは違う...。Comment(waste,5)で確認しました。

例えば、if(Close_1>Open_1)の条件は問題ないが、( Close_1>Open_1 && Close_1-Open_1)>=30*Point) の条件はなぜダメなのか......!

私は何を間違えているのだろう?

よろしくお願いします!!))

 
deyron:
注文を開こうとする試みがあった場合、メッセージに表示されます。注文を開こうとする試みがないのであれば、なぜエラーになるのでしょうか。問題は、マハがレベルを通過する条件が正しく設定されているかどうかです。パラメータがハードコードされているのに、なぜ注文が予想よりずっと遅れて開始されるのですか?

Print()とGetLastError() を適切な場所に配置することで、すべての質問に答えることができます。