エラー、バグ、質問 - ページ 2242

 
darkangel8733:

こんにちは、私はあなたからEAを買いました、"turtle"で、スタンドアローンモードでは動作しない、、、、?

言ってみただけです。Expert Advisor が指標を使用する場合、たとえ標準的なものであっても、指標にアクセスする必要があります。この経験則はすでに紹介したとおりです。

 
A100:
要求はただ一つ、「邪魔をするな、助けろ」である。もし、この議論が不要だと思うのであれば、その中に入ってこないでください...。必要/不必要を)決めるのはあなたではない - そのために管理者とモデレーターがいるのだ

私は同意するが、あなたがアドバイスを好きではない場合、あなたはそれに応答すべきではない、その後、質問はありません...誰もがここに彼が適切と思うものを書いて、私は感謝の代わりに、アドバイスを与える、すなわち無料の助けを提供するためにフィット見た私は苦情を読んで...。グッドラック

 
Konstantin:

同感ですが、アドバイスが嫌なら反応しなければいいだけの話です

今のは適切なアドバイスだ...ありがとうございます...もらう
 

どうしてですか?

ArrayFree(SummArr);
ArrayResize(SummArr,57);
Print("SummArr_1=",SummArr[1]);
2018.07.26 02:09:04.566 Pred_Ocenka_02 (Si Splice,M1)   SummArr_1=1190264832

配列の値が空(ゼロ)でないのはなぜですか?

 
Aleksey Vyazmikin:

どうしてですか?

配列の値が空(ゼロ)でないのはなぜですか?

先にサイズを決めてからクリアする場合はどうするのですか?

 
Vitaly Muzichenko:

先にサイズを決めてからクリアする場合はどうするのですか?

その後

2018.07.26 02:20:08.482 Pred_Ocenka_02 (Si Splice,M1)   array out of range in 'Pred_Ocenka_02.mq5' (76,27)
クリア後のサイズ情報がない。
 
もし
ArrayFree(SummArr);

を削除すると、その値も空ではなくなります。このアレイはこれまで使用されていません。

 

いくつかのナンセンスな、一般的なコードのカットは次のとおりです。

int SummArr[];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ArrayFree(SummArr);
   ArrayResize(SummArr,57);
   Print("SummArr_1=",SummArr[1]);
   Print("SummArr_30=",SummArr[30]);   
   Print("SummArr_57=",SummArr[56]);   
  }
//+------------------------------------------------------------------+

出力時。

2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_1=1190264832
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_30=2097181
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_57=154252694

私の端末がおかしくなったのかもしれませんので、ご確認ください。

それとも、普通で全てがゴミになるはず?

 

mql4インジケーターのコードが動かなくなりました。

else{// Иначе стрелка создана. Задаём её свойства
 ObjectSetInteger(Open_name,OBJPROP_ARROWCODE,OpenArrowCode);//код стрелки 232 
 ObjectSet(Open_name,OBJPROP_COLOR,ObjColor);//цвет стрелки
}

エディターが 'ObjectSetInteger' と表示 -関数 呼び出しに適用できるオーバーロードが1つもない

何年も使えていたのに、突然使えなくなった。しかし、残念なことです。


 
Aleksey Vyazmikin:

いくつかのナンセンスな、一般的なコードのカットは次のとおりです。

出力時。

私の端末がおかしくなったのかもしれませんので、ご確認ください。

それとも、それが普通で、すべてがゴミになるはずなのか?

任意の動的配列のバッファを解放し、0次元のサイズを0に設定する。

スクリプトやインジケータを書くとき、ArrayFree()関数を使う必要はあまりないかもしれません。スクリプトが動作を停止した後、使用したメモリはすべてすぐに解放されますし、カスタムインジケータでは、配列の主な作業は、ターミナルの実行サブシステムによって自動的に管理されているインジケータバッファにアクセスすることで実行されます。

複雑な動的条件下でメモリを自分で管理する必要がある場合、ArrayFree()関数を使用すると、不要な動的配列が占有するメモリを明示的かつ即座に解放 することができます。

ほらね?不要です。

もちろん、一度そこからメモリを解放し、再び配列のサイズを決めてメモリを確保しても、その中身は誰も保証してくれません。

配列の初期化:ArrayInitialize()を使用する。