int start(){
double array[4];
int k,N[];
k=ArraySize(array);
ArrayResize(N,k);
for (int i=0;i<k;i++)N[i]=-i-1;// Заполнили массив элементов массива отрицательными//int j=0;
while(N[k-1]<k){
if(N[j]<k-1){
N[j]++;
bool NewComb=false;
for(i=0;i<k-1;i++){
if(N[i]>N[i+1]){NewComb=true;}else{NewComb=false;break;}
}
//if(NewComb){
// Получили новую комбинацию в массиве N размерностью k string temp="";
for(i=0;i<k;i++){// Перебираем массив N. Если N[i] то элемент array[N[i]] не участвует в выборке.// Например, для размерности 4 если N[0]=3,N[1]=1,N[2}<0,N[3]<0 то это выборка array[3] и array[1]// если N[0]=3,N[1]=2,N[2]=1,N[3]=0 то это выборка array[3] и array[2] array[1] и array[0]if(N[i]<0)temp=StringConcatenate(temp,"X");else temp=StringConcatenate(temp,N[i]);
}
Print("NEWCOMB ",temp);// это для проверки какие комбинации выбираются
}
//
}
else{
N[j]=0;i=1;
while(i<k){
if(N[i]<k-1) {if(N[i]>=0)N[i]++;else N[i]=0;j=0;break;}
else {N[i]=0;i++;}
}
}
if(N[k-1]>=k-1) break;
}
return;
}
ディメンジョン4のテスト結果。配列の X 要素が選択されていない場合,それ以外は array[digit] と 6 次元用の fragment を使用します.
ありがとうございました。3小節目など、どちらからカウントを始めるかは関係ないのでしょうか?
この例では、実際には違いはありませんが、いずれにせよ配列の開始と終了を指定する必要があります。
配列が大きい場合は、先頭が重要になります。例えば、ルールとして配列の末尾で条件が発生する場合は、末尾から始めた方が良い。この例は、オーダー/ポジション検索の典型的な例です。もちろん、この場合、最初に検索を行えば、いずれにせよプログラムはこの時点までたどり着くが、より多くのリソースを必要とすることになる。皆さん、こんにちは!このテーマについてアドバイスをお願いします...。レベルタブでMAレベルをシフトさせたいのですが、798までシフトさせようとすると、多くのペアで計算が面倒です。シフトした移動平均の価格を描画するか、データウィンドウに表示するか、手動で計算しなくてもよいインジケータを書くにはどうすればよいでしょうか?
。
このような問題 - サイズが変化しうる一次元の配列がある。 配列の要素のすべての可能な組み合わせをループする方法は?要素の順番は関係ない、つまり123==213==321...です。以下は、4つの要素を持つ配列の例である。
脳にとって良い作業です。次のように試すことができます。
ディメンジョン4のテスト結果。配列の X 要素が選択されていない場合,それ以外は array[digit] と 6 次元用の fragment を使用します.
MAシフトを入力データとするインジケータを作成する。そして、インジケータは価格レベルを計算し、すぐにそのオブジェクトをチャート上に表示します。
どうすればいいのか、はっきり言ってわかりません。МА МАのコードを開くと、いろいろありすぎて、レベルのパラメータがどこにあるのかわからないので、レベルをコピー&ペーストすることができません。
やり方がわからず、正直困っています。MAコードを開くと、いろいろありすぎて、どこにレベルパラメータがあるのかわからず、レベルをコピー&ペーストしてしまいます。 MAコードのどの部分をコピーして、どこにレベルをペーストすればいいのでしょうか?
いや、自分でインジケータを書き始めてから、必要なことを教えてくれるはずです。
新しいインジケータを作成しました、今のところこのような感じです。
#property copyright "Copyright 2013, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 レッド
//--- バッファ
double ExtMapBuffer1[]。
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexStyle(0,DRAW_LINE)を設定します。
SetIndexBuffer(0,ExtMapBuffer1)を設定します。
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
#include "Moving Averages.mq4"
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ反復関数
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
カスタムインジケーターの作成
MA指標には水準があります。問題は、これらのレベルからデータを取得する方法です。例えば、価格がレベル100または-100に達したとします(買い/売り取引を開始します)。
ゼロ(現在の)バーでのMAそのものは
MAを計算するために、現在のバーの "チャター "を取り除くために、始値を取ります。
そうすると、レベル+100の 値段は
レベル価格 -100と なります。
ゼロ(現在の)バーでのMAそのものは
MAを計算するために、現在のバーの "チャター "を取り除くために、始値を取ります。
そうすると、レベル+100の 値段は
レベル価格 -100と なる。
ありがとうございます。何度も助けられました。すぐにプログラミングができるようになると思うのですが......。