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

 
Karlson:

どのスレッドに書き込めばいいのかわからなかった )))

イニシャルデポ10000.これは昨日のアップデート前のものです。

その成果はいかがでしたか?servicedeskでのテスト条件のコードと説明を教えてください。
 
Urain:

OnTradeTransaction は Trade イベントをトリガーしますか、それとも独自のイベントを持っていますか?

両方の関数が同じイベントでトリガーされた場合、その順番は? OnTrade() と OnTradeTransaction() ではどちらが先にトリガーされるのでしょうか?

このままではいけない。

プリントアウトしたものを貼って見てください-1分で終わります。

 

専門家に加え、...#419548

それがきっかけで、銀のテストをするようになったんです...。

ワンバレルが3つというわけのわからないメモリ消費量が...。

 
Renat:

OnTradeTransactionはOnTradeの機能を完全にカバーし、互いに補完し合っています。

OnTradeTransaction を使用すると、生の取引フローにアクセスでき、取引 実行プロセスを詳細に監視することができます。

各機能は独立して動作し、OnTradeTransaction上の取引フローはより大きく、より詳細なものとなっています。OnTradeTransaction は独自のキューを持ち、そこからコマンドを発行する。

ps: これらの関数のアンダーシュートを設定し、ご自身でお確かめください。

つまり、OnTradeはOnTradeTransactionのカットバージョンになったということでしょうか。

それともOnTradeTransactionにないものをOnTradeで得ることができるのでしょうか?

 
Urain:

つまり、OnTradeはOnTradeTransactionの縮小版ということですか?

あるいは、OnTradeTransaction からは得られないものを OnTrade から得ることができるのでしょうか。

OnTradeは以前と同じで、「取引操作 データベースに何らかの変更が発生しました」と通知されるだけで、詳細は不明です。トレーダーは自分でデータベースにアクセスして、実際に何が変わったかを確認しなければならない。

OnTradeTransactionは、絶対的に正確で詳細な個々の 取引をステップバイステップで提供します。ここでは、各トランザクションが大皿で提供され、データベース内の変更を検索する必要はありません。

彼らは、取引業務に関連するすべての取引を完全かつ詳細に管理するという、まさに要求されたことを実行しました。また、サーバー側で行われた変更(ストップ、オーダー、ロールオーバーなどのトリガー)を簡単にキャッチすることができます。

 
Renat:

OnTradeは以前と変わらず、「取引業務 基盤に一部変更がありました」という通知が来るだけで、詳細は不明です。トレーダーは自分でデータベースにアクセスして、何が本当に変わったのかを確認しなければならない。

OnTradeTransactionは、非常に正確で詳細な個々の 取引をステップ・バイ・ステップで提供します。すべてのトランザクションが大皿に表示されるので、データベース内の変更を探す必要はありません。

取引に関連するすべての取引を完全かつ詳細に監視してくれるなど、まさに依頼通りの働きをしてくれました。また、サーバー側で行われたすべての変更は、ストップ、オーダー、ロールオーバーなどのトリガーとして、簡単にキャッチすることができます。

ありがとうございます、とても賢いです。今、テストしていますが、とても便利で機能的です。
 

初期化関数にCopyBuffer関数が 使えるかどうか教えてください。

input int      n_analyzed_bars=50;

input int      shift_offset=0; 

input string   symb1="GBPUSD";

input ENUM_MA_METHOD   ma_method=MODE_SMA;

input ENUM_APPLIED_PRICE   applied_price=PRICE_CLOSE;  

//--- indicator buffers 

double                   MainMaBuffer[];

double                   MaBuffer1[]; 

//--- MA handles

int                      MainMaHandle;

int                      MaHandle1; 

int OnInit()

  { 

SetIndexBuffer(0,instsymBuffer,INDICATOR_DATA);

SetIndexBuffer(13,MainMaBuffer,INDICATOR_CALCULATIONS);

ArraySetAsSeries(MainMaBuffer,true);

ArraySetAsSeries(MaBuffer1,true);

 

MaHandle1 = iMA(symb1,0,1,0,ma_method,applied_price);

MainMaHandle = iMA(_Symbol,0,1,0,ma_method,applied_price); 

if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)<=0) 

    {

      Print("Getting MA is failed! Error",GetLastError());      

      return(0);

    }

エラー 4806 と 4007

err_indicator_data_not_found

4806

要求されたデータが見つからない

err_array_resize_error

4007

配列の再配置や静的配列のリサイズを行うためのメモリが不足している

 
Neofit:

初期化関数にCopyBuffer関数が 使えるかどうか教えてください。

エラー 4806

err_indicator_data_not_found

4806

要求されたデータが見つかりませんでした

initeでインジケータを作成する場合、インジケータ作成後に計算する時間が必要なので、そのデータの読み込みをOnTickやOnCalculateに移した方が良い。

つまり、イナイレでインジケーターを作っておいて、左。OnTick/OnCalculateの操作ポイントでは、CopyBufferでデータの有無を確認し、データが表示されるまで計算も放置します。

これは、複雑なスレーブ/依存インジケータを初期化し、動作させる方法です。

 
Renat:

initeでインジケータを作成 する場合、インジケータ作成後に計算する時間が必要なため、そのデータの読み込みをOnTickまたはOnCalculateに移動した方がよいでしょう。

つまり、イナイトでインジケータを作成して、放置しているのです。OnTick/OnCalculateの操作ポイントでは、CopyBufferでデータの有無を確認し、データが表示されるまで計算も放置します。

この方法では、複雑なスレーブ/依存インジケータを初期化して作業する必要があります。

ご感想をお寄せいただきありがとうございました。

私はインジケータを書いているのですが、残念ながら、インジケータのコンセプトは、OnCalculateに至るまでに最適なペアが選択されることを前提としており、不明瞭に聞こえるのではないかと思います。

一般に、OnCalculate関数では、On Initで実行された計算と解析の結果を既に使用する必要があります。

連続する2つのティックの間にすべての計算を行う時間がないため、これらの計算をOnCalculateに転送することはできません...。

 
antt:
はい。残念ながら、ビルドでこのオブジェクトをレンダリングする際にエラーが発生します。次のビルドで修正される予定です。その点については、お詫び申し上げます。

なるほど、ありがとうございます。どうなんだろう...

サイレント

...

その他のオブジェクト(ギャンファン、アーク)は完成するのでしょうか?

ウィンドウ交換時の「迷い」について?