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

 
keep87:
不可

かのうせいがあります)

例えば、EAに端末のグローバル変数 に配列を読み込ませて、そこから読み出すようにすることもできます。

 
alsu:
アウトプットをどうするか決める。5小節分逆算した値であれば

または同一

もしそうなら。

これらのバーにはシフトしたリストがないため、常にEMPTY_VALUEになります。

了解です、ありがとうございます
 
alsu:
何より、EAでわざわざシフトを使わなくても、シフト0と欲しいバーの番号を取ればいいのです。
今テスターで確認したところ、移動平均線を越えてから5本ローソク足でトレードを開始することが判明しました...。私はあなたができることを考え出した、他のMAを5キャンドル前方に移動し、その後、信号が正しいです...)。
 
ierehon:
今テスターで確認したところ、移動平均線がクロスした後、5本ローソク足でトレードを開始していることが判明しました、、、。私は何をすべきか考え出した、別のMAを5キャンドル前方に移動し、その後、信号が正しいです...)

どうということはない)

右方向に5小節シフトしたMAの0小節目=シフトしていないMAの5小節目

 
keep87:
はできません。最適化から最適化へと変化しないのであれば、EA内部で配列から配列へとデータを手動でスコアリングすることができます、テストの時間に対して。
ただ、この場合、MTは毎回ファイルから配列を読み込む必要がありますが(?)、別個のものではなく、コードから読み込むことになります。
- この場合、何か得るものがあるのでしょうか?
 
alsu:

かのうせいがあります)

例えば、Expert Advisorで端末のグローバル変数に配列をロードし、そこから読み込むようにすることができます。

配列の要素は数十から数百まであり、それぞれの変数について あらかじめ宣言して おく必要がある。
実装はかなり難しいでしょう(もちろん、その作業も些細なことではありませんが)。
 
chief2000:
配列の要素は数十から数百にもなり、あらかじめそれぞれに対して変数を宣言しておく必要があります。 実装は少し複雑です(もちろん、この作業も些細なことではありません)。 。


だからなんだループ内の変数は、配列の要素を 扱うのと同じように扱います。使用例

double a[];
int n;

...
ArrayResize(a,n);
...

//запись массива в глобальные переменные

string name;
for(i=0;i<n;i++)
{
   name = StringConcatenate("__ARRAY_",i);
   GlobalVariableSet(name,a[i]);
}

//чтение в массив из глобальных

int gv = GlobalVariablesTotal();
int index;

for(i=0;i<gv;i++)
{
   name = GlobalVariableName(i);
   if(StringFind(name,"__ARRAY_")==0)
   {
      index = StrToInteger(StringSubstr(name,8));
      if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
      
      //опционально - если хотим очистить список
      //GlobalVariableDel(name);
   }
}


これ以上ないくらい簡単です))

 
alsu:

それがどうした?ループ内の変数は、配列の要素を扱うのと同じように扱います。使用例

これ以上ないくらい簡単です))

私の記憶では、この方法で数千の変数を扱ったことがありますが、速度低下は感じられませんでした。大量(数十万アイテム以上)の場合は、通常、MySQLを使うようにしています。
 
alsu:
私の記憶では、この方法で数千の変数で作業しましたが、ラグに遭遇したことはありません。大量(数十万アイテム以上)の場合は、通常、MySQLを使うようにしています。
ありがとうございました。
 

1.33027; 1.33023といった形式のデータを含むcsvファイルがあるのですが、アドバイスをいただけますか?

その後、このファイルを読み込むのですが、なぜか4桁の精度でデータが読み込まれ、5桁で読み込む必要があります。

さまざまな方法で読み、そして

FileReadString и FileReadDouble и FileReadInteger

どうにもならない