[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 536

 
Indicatorsフォルダー内の*.ex4拡張子を持つファイルをすべて削除した場合
- その場合、利用可能なすべての *.mq4 ファイルを一度にコンパイルできますか?
(一括り)
ありがとうございました。
 
chief2000:
Indicatorsフォルダー内の*.ex4拡張子を持つファイルをすべて削除した場合
- その場合、利用可能なすべての *.mq4 ファイルを一度にコンパイルできますか?
(一括り)
ありがとうございました。

ターミナルを閉じてから開くと、それらはすべて自分でコンパイルされます。
 
fore-x:
ターミナルを閉じてから開くと、勝手にコンパイルされます。

これは私が期待していたことですが、いくつかの指標がまとめられただけで、他には何もありません。

 

こんにちは別の時間軸の標準アドバイザーの書き方。例えば、1時間足のチャートにこのインジケータを置くと、4時間足のインジケータが表示されます。

пытался //+------------------------------------------------------------------+
///4時の方向へ.mq4|。
//| 著作権 © 2012, MetaQuotes Software Corp.
//|https://www.metaquotes.net/|
//+------------------------------------------------------------------+
#property copyright "著作権 © 2012, MetaQuotes Software Corp."
#プロパティリンク "https://www.metaquotes.net/"

#property indicator_chart_window
#プロパティ indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//---- インジケータ・パラメータ
extern int BandsPeriod=20;
extern inttern BandsShift=0;
extern double BandsDeviations=2.0;
//---- バッファ
double MovingBuffer[];
double UpperBuffer[];
double LowerBuffer[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexStyle(0,DRAW_LINE)を設定します。
SetIndexBuffer(0,MovingBuffer)を設定。
SetIndexStyle(1,DRAW_LINE)を設定します。
SetIndexBuffer(1,UpperBuffer)を設定します。
SetIndexStyle(2,DRAW_LINE)を設定します。
SetIndexBuffer(2,LowerBuffer)を設定します。
//----
SetIndexDrawBegin(0,BandsPeriod+BandsShift)を設定します。
SetIndexDrawBegin(1,BandsPeriod+BandsShift)を設定します。
SetIndexDrawBegin(2,BandsPeriod+BandsShift)を設定。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| ボリンジャーバンド
//+------------------------------------------------------------------+
int start()
{
int i,k,counted_bars=IndicatorCounted();
ダブルデビエーション
double sum,oldval,newres;
int B=iBars( NULL,PERIOD_H4);
double C=iClose(NULL,PERIOD_H4,0);
//----
if(B <=BandsPeriod) return(0);
//---- 初期値ゼロ
if(counted_bars<1)
for(i=1;i<=BandsPeriod;i++)
{
MovingBuffer[B-i]=EMPTY_VALUE。
UpperBuffer[B-i]=EMPTY_VALUE。
LowerBuffer[B-i]=EMPTY_VALUE。
}
//----
int limit=B-counted_bars。
if(counted_bars>0) limit++;
for(i=0; i<limit; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA, PRICE_CLOSE,i)とする。
//----
i=B-BandsPeriod+1 とする。
if(counted_bars>BandsPeriod-1) i=B-counted_bars-1。
while(i>=0)
{
sum=0.0;
k=i+BandsPeriod-1 とする。
oldval=MovingBuffer[i];
while(k>=i)
{
newres=C[k]-oldval;
sum+=newres*newres;
k--;
}
deviation=BandsDeviations*MathSqrt(sum/BandsPeriod) となります。
UpperBuffer[i]=oldval+deviationとする。
LowerBuffer[i]=oldval-deviationとする。
i--;
}
//----
return(0)です。
}
//+------------------------------------------------------------------+

動作せず

こちら側 newres=C[k]-oldval;- '[' - 想定外のトークン

ボリンジャーバンドのインジケーターです。

 
チュートリアルを使って、時間に応じた操作を行おうとしたところ、すべて正しいようですが、Expert Advisorがアクティブにならず、例えば、12.00に関数を実行する必要があります。

extern double Time_Cls=12.00;

int start()
{
int Cur_Hour=Hour();
double Cur_Min =Minute();
double Cur_time=Cur_Hour + Cur_Min100;
if (Cur_time==Time_Cls)
//私の関数
を返します。
}
 
audiomoroz:

チュートリアルにある時間軸の操作を行おうとしているのですが、すべてが正しく見えるのに、Expert Advisorがアクティブにならない、例えば、12.00に機能を実行する必要があります。


if (Cur_time==Time_Cls)
//私の関数
を返します。
}
タイマーでアルゴリズム実行をトリガーするのと、ミリ秒単位でtickの到来をキャッチするのでは、コンセプトが違うからです。
 

同志よ。

同じ時間足(2011年5月1日~2012年1月27日)で、通貨ペアEURUSD、時間足(H1)で、ある証券会社(Alpari)から、同じExpert Advisorで、異なるコンピュータ(ラップトップ、デスクトップ)で、私の戦略テスターは 反対の結果を示しています。PCの場合-2000円、ノートPCの場合+3000円。そして、そこで、2-3回テストしました。

原因や対処法、またはこのトピックに関する記事を読むことができるリンクを教えてください。

 
chief2000:

これを期待していたのですが、いくつかの指標をまとめただけで、他には何もありませんでした。

あらかじめインジケーターのあるフォルダからmqlcache.dat ファイルを 削除しておく必要があります。
 
Zhunko:
あらかじめインジケーターのあるフォルダーからmqlcache.datを 削除しておく必要があります。

あなたの解決策はうまくいきました

ありがとうございました。

 


カスタムインジケータの コードから、実行中のウィンドウが現在アクティブかどうかを知ることは可能でしょうか?
例えば、同じインディケータが2つのウィンドウで動作している場合、チャートがアクティブになっているウィンドウでのみ動作し、2番目のウィンドウでは非アクティブになるようにする必要があります。

ありがとうございました。