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

 

みなさん、こんにちは。

助けてください。

MQL4のチュートリアルから)注文を開くための簡単なスクリプトを書きました。

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

この例では、計器用に4桁のコードが指定されています。

ドットの後が5桁の会社のアカウントを持っています。

スクリプト実行時にエラー4109(trading not allowed)が表示される原因と、コードを5桁に修正する方法を教えてください。

 
sss2019: 配列の型をintにして、各要素を実行すると、配列の値が計算値と一致することが確認できますが、型がIntの場合、ウインドウにインジケータ線が表示されないのです。

配列の型をdoubleにすると、214565454、43654534532、24325235232など、どこから来たのかわからない値が多く格納されます。計算値と全く一致しない。

何が問題なのでしょうか?

テレパスをアピールするのです。しかし、実数を整数で割るときの矛盾が問題である可能性は十分にある。
 

こんにちは、インジケーターの対応について教えてください。アイデアは、16:00モスクワのタイムフレームでアメリカのセッションのオープニングでマークが任意のタイムフレームで、ろうそくの上に配置されています。 私は、チュートリアルを複数回読んで、他の指標を見てきましたが、まだ理解していない、日付関数の問題があります。

ファイル:
exfbtix.mq4  2 kb
 
Yulia:

こんにちは、インジケーターの対応について教えてください。アイデアは、16:00モスクワのタイムフレームでアメリカのセッションのオープニングでマークが任意のタイムフレームで、ろうそくの上に配置されています。 私は、チュートリアルを複数回読んで、他の指標を見てきましたが、まだ理解していない、日付関数の問題があります。


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour =9;

//+------------------------------------------------------------------+
int init()
{
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,108);
  SetIndexBuffer(0,Buffer);  
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars=IndicatorCounted(); // сколько баров уже просчитано для начего индикатора
if(counted_bars<0) return(-1);// проверяем ошибки


int i=0;
    while(i<Bars)
         {
         if(TimeHour(Time[i])==hour)
            {        
            Buffer[i]=High[i]+150*Point;
            }
         
         i++;
         }

return(0);
}
//+------------------------------------------------------------------+

 
 
ありがとうございます。しかし、少し間違っています。私はもちろん日足とそれ以上を除いて、M1、M5などの最初のキャンドルにマークが必要なだけです。
 
Reshetov:
テレパスに相談する必要があります。しかし、この問題は実数を整数で割ることの矛盾である可能性も十分にあるのです。


以下はそのコードです。

int lowsum, highsum;
int Mass1[];
int Mass2[];

                        while(start1 < end1 + 1)
                                {
                                lowsum = lowsum + iVolume(Symbol(), PERIOD_M1, start1);
                                start1++;
                                }
                        while(start2 < end2 + 1)
                                {
                                highsum = highsum + iVolume(Symbol(), PERIOD_M1, start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                        Alert(Mass[i], " ", highsum);

その結果、アラートはこれらのメッセージを出力します。

変数に値があることはわかりますが、配列に変数の値を代入 することはできません、何が問題なのかがわかりません

 
Yulia:
どうもありがとうございます、しかし少し間違っている、私は唯一の日以上もちろん除いて、M1,M5などの最初のキャンドルにマークが必要です。

なせばなる
 
sss2019:

変数に値があることはわかりますが、配列に変数の値を代入することはできません、何が問題なのかがわかりません

アレイの大きさは?
 
sss2019:


以下はそのコードです。

その結果、アラートはこれらのメッセージを出力します。

変数に値があることはわかりますが、配列に変数の値を代入することはできません、何が問題なのかがわかりません


配列のサイズを 設定する必要はないのですか?
 
多分私は間違って何かを説明した、あなただけの16:00モスクワ時間で始まるm1 m5 m15 m30 h1 h4の最初のろうそくをマークする必要があり、指標は(例えばm15に4キャンドル)マークします。