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

 
アメリカでは今何時ですか? アメリカでは何時に開店/閉店しますか? 日本では何時に開店/閉店しますか? ただ、冬時間が廃止されたことで、ちょっと曖昧になっていますね...ヨーロッパ、アジア、アメリカは時計を合わせているのでしょうか?
 
Elenn:
このソリューションは実に独創的で、ぜひ試してみたい。しかし、アレイを再初期化した場合、再初期化によりデータが失われるのでは?

アレイのサイズを 大きくしても、以前に入力したデータは失われません。そして、「取り込まれた」(新しい)セルには、RAMのゴミが含まれることになります。また、アレイを縮小すると、縮小したセルにあったデータは取り返しがつかなくなる。これがプログラミングの基本です。
 
vilard:

MODE_TRADE注文がMODE_HISTORY注文になるまでの時間はどれくらいですか?

あっという間に保留中の注文は 履歴に残りません。

成行注文に変換され、決済されるとすぐに履歴が残りますが、成行注文の種類を持ちます。

例えば、こんな感じです。

OP_BUYSTOPがあった場合は、OP_BUYに変換される。終了、履歴に残ります。

ただし、OP_BUYSTOPからOP_BUYへの変換後は、元のOP_BUYSTOPは履歴に残らない

 
001:

こんばんは、アドバイスお願いします。異なるバー上に2つのインジケータ値があります。それらを貫く線を引き、それをインジケーターでどのように扱うか?ありがとうございました。

その間の線は、OBJ_TREND オブジェクトを使って描くことができます。第1座標は1本目のバーの時間と価格、第2座標は2本目のバーの時間と価格です。

機能です。

//+----------------------------------------------------------------------------+
void SetTLine(color cl, string nm, datetime t1=0, double p1=0, datetime t2=0, double p2=0, int st=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, 0, 0, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_TIME2    , t2);
   ObjectSet(nm, OBJPROP_PRICE2   , p2);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_STYLE    , st);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
   ObjectSet(nm, OBJPROP_RAY      , 0);
}
//+----------------------------------------------------------------------------+

その中ですべてがクリアになることを願っています。

cl - オブジェクトの色,nm - オブジェクト名,t1,p1 - 原点座標,t2,p2 - 終点座標,st - 線種,sz - 大きさ.

また、レイを追加することもできます。1 - レイ、0 - セグメントです。この関数の最後の行は、セグメントを定義しています。0の代わりに、渡すべきパラメータの名前を入れることができます。

インジケータでこれ(この行)をどのように扱うかについては、この行から何を必要とするかを知る必要があります。しかし、その上のデータ(線)は、標準関数を使って求めることができます

ObjectGet("オブジェクト名",必須オブジェクトプロパティ)。

 
artmedia70:

OBJ_TRENDオブジェクトを使えば、その間に線を引くことができます。第1座標は1本目のバーの時間と価格、第2座標は2本目のバーの時間と価格です。

機能です。

その中で、すべてがクリアになることを願っています。

cl - オブジェクトの色,nm - オブジェクト名,t1,p1 - 原点座標,t2,p2 - 終点座標,st - ラインスタイル,sz - 大きさ.

また、レイを追加することもできます。1 - レイ、0 - セグメントです。この関数の最後の行は、セグメントを定義しています。0の代わりに、渡すべきパラメータの名前を入れることができます。

インジケータでこれ(この行)をどのように扱うかについては、この行から何を必要とするかを知る必要があります。しかし、その上のデータ(線)は、標準的な関数を用いて求めることができます

ObjectGet("オブジェクト名"、必要なオブジェクトのプロパティ)。


ありがとうございました。もうひとつ、質問させてください。EAでどのようにトレンドを働かせるか(あるバーでトレンドがどのような値をとるか知りたい)。インジケーターの一部をExpert Advisorに転送したい(計算)。
 
おはようございます!!!アカウントに入れない!?なんだこの「よくある間違い」は?
 
またパソコンの調子が悪いのでしょうか?
 
Elenn:
このソリューションは実に独創的で、ぜひ試してみたい。


Delphiのチュートリアルから少し文章を引用しておきます。知っておいて損はないでしょう。

"動的配列 "は動的なデータ構造であるため、プログラムが終了したときにコンピュータのメモリから明示的に削除するように規定する必要があります。不要な動的変数をコンピュータのメモリから削除する処理を、"ゴミ拾い"と呼ぶことがある。

MQL4で動作する方法は、プログラムが動的配列を処理し終わったときに、ArrayResize()関数(https://docs.mql4.com/ru/array/ArrayResize)を使用して動的配列のサイズをゼロにすることです。

 
drknn:


Delphiのチュートリアルから少し文章を引用してみようと思います。知っておいて損はない。

"動的配列 "は動的なデータ構造であるため、プログラムが終了したときにコンピュータのメモリから明示的に削除するように規定する必要があります。不要な動的変数をコンピュータのメモリから削除する処理を、"ゴミ拾い"と呼ぶことがある。

MQL4言語に適したバリエーションは、動的配列の処理を終えた後、ArrayResize()関数(https://docs.mql4.com/ru/array/ArrayResize)を使って長さをゼロにリサイズすることです。

それはすべて真実です。ゴミをきれいにすることは、良い経験則です...。

しかし、この文脈で「ゴミ」を今片付けるべきか、逆に今片付けるべきかをどう判断するか。それはゴミではなく、さらなる計算のために必要なデータなのです。

私の理解では、deinit()はゴミを掃除するために使われるはずですが、、、。取引商品のチャート削除、EA削除時だけでなく、TF変更時にも実行されます。この場合、TFに蓄積されたデータはすべて失われ、Expert Advisorは前のタイムフレームに戻ったときにゼロの配列で作業をやり直すことになります。EAのパラメータを変更しても同じことが起こります。

ある状況下では、「スカベンジング」は単に配列のサイズを変更するのではなく、複雑な論理処理であることが判明したのです。

 
001:

ありがとうございました。もうひとつ、質問させてください。作業方法(あるバーでトレンドがどのような値を とるか知りたい)、EAでトレンドとどのように連携 するか。インジケーターの一部をExpert Advisorに転送(計算)したいのですが、どうすればいいですか?

ObjectGetValueByShift()を使って

そして、それをどう使うか、それは自分だけが知っている