[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 198

 

SKさん、Vininさん、どうもありがとうございました。

ワークアラウンドのお手本になる

これほどまでに洗練されているのは、苦労した甲斐があったというものでしょう。:-)

MQL4は、プログラマーの時間を有効に使う方法を知っているようです。:-)

 
SK. >> :

ここを見て ください

ありがとうございます、とても役に立つ記事です。

 
stera писал(а)>>

SKさん、Vininさん、どうもありがとうございました。

granit77 さんが書き込みました >>1

ありがとうございます、とても役に立つ記事です。

このトピックに興味がある方は、こちらの記事をご覧くださいhttp://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi

この本では、水平線に関する多くの詳細について説明し、技術的な解決策(オルタネート)を示しています。

縦線も図解しています。でも、まだ理解できていないルールもある。例えば、画像の揺れに合わせて、ind.バッファのパリティを変更すればよい(ブロック4-5、バッファの数を6と7から5と6に変更し、5個目を7mにする)。

 
初心者の方からの質問です。mql4で、一定の時間に定期的に開閉する自動売買を意味するEAを作成 することは可能でしょうか?テストしたい。主にルーラングを使用していますが、これらのアイデアはどうやらそこでは実現不可能なようです。
 

指標と専門家の順番は?

1つのチャートに2つのインジケータを表示しています。

そして、集合的に見ると、その実行時間はティック間の時間よりもはるかに長いことがあります。

どのインジケータが最初に実行されますか?

もし、それらが並行して実行されないのであれば、当然ながら異なるチャートに配置するのが合理的なのかもしれません。

インジケーターとExpert Advisorが同じチャートにある場合、また異なるチャートにある場合、どちらが先に実行されますか?

 

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i]。

うまくいかない。


どうか、どうしたらいいか教えてください。どうしたらいいんだろう。

 
Feonix >> :

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i]。

うまくいかない。

どうか、どうしたらいいか教えてください。どうしたらいいんだろう。

>> どうしたらいいの?>>すべてのコードを 表示

 
OneDepo >> :

どうすればいいのか?すべてのコードを 表示する

//+------------------------------------------------------------------+

| Momentum.mq4(モーメンタム・エム・キューブ)|株式会社日立製作所

//| 著作権 © 2004, MetaQuotes Software Corp.

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "著作権 © 2004, MetaQuotes Software Corp.

#プロパティリンク "http://www.metaquotes.net/"


#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- 入力パラメータ

extern int MomPeriod=14;

int ret;

double x[];

//---- バッファ

double MomBuffer[];

double ocfor[];

double octen[];

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

文字列のshort_name。

//---- インジケータ線

SetIndexStyle(0,DRAW_LINE)を設定します。

SetIndexBuffer(0,MomBuffer)を設定します。

//---- DataWindowとインジケータサブウィンドウのラベル名

short_name="ママ("+MomPeriod+")";

IndicatorShortName(short_name)。

SetIndexLabel(0,short_name)を設定する。

//----

SetIndexDrawBegin(0,MomPeriod)を設定します。

//----

return(0)です。

}

//+------------------------------------------------------------------+

| モメンタム

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=バー

while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i]。

i--;


}

return(0)です。

}

//+------------------------------------------------------------------+



Double x[];をDouble x;に置き換えると、すべてうまくいきますが、ポイントはmombuffer[i]=x[i]を代入することです。

 
Feonix писал(а)>>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
こんなことができます
 
Feonix >> :

.

.

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=バー


ArrayResize(x, i+1);


while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i]。

i--;

}

return(0)です。

}



Double x[];をDouble x;に置き換えると、すべてうまくいきますが、ポイントはmombuffer[i]=x[i]を代入することです。

配列を宣言したのに、その配列にメモリを割り当てていない。

Vininでは 、メモリ確保の方法を1 つ紹介しましたが、2つ目の方法として、 ArrayResize() 関数を使用することができます。