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

 

http://www.soft-sib.ru/articles/programs/10/

DBMSとクライアント・サーバー・アーキテクチャを使用することで、ファイル・サーバー・アプローチと異なるもう一つの利点は、トランザクション・データ操作のメカニズムを使用できることである。データサーバーが提供するこのサービスにより、複数のデータ修正アクションを1つの不可分な操作 (トランザクション)にまとめることができる。トランザクションを使用することで、ISのクライアント側とサーバー側の両方で、ハードウェアやソフトウェアの障害から情報を確実に保護することができます。

 
そう、私は透明人間なのか、誰も助けようとしないし、助けられないのか、どちらかだ((
 
PerlOF:


ハンドブックやチュートリアルでは、サーバーに接続する必要性が指摘されています(EA、スクリプト、インジケータ用)。

サーバーに接続せずに特殊な機能を呼び出すことは(原理的に)可能ですか?


はい、そうです。実はサーバーは、start()関数を起動させるtickを受け取るために必要なのです。

start()- メイン関数。次のテロップを受信した後、エキスパートで呼び出される。カスタム・インディケータの場合、チャートへのアタッチ後、クライアントターミナルのオープン時(インディケータがチャートにアタッチされている場合)、および次のティックの到来後に、再計算中に呼び出されます。スクリプトでは、チャートへのアタッチメントと初期化の直後に実行されます。モジュール内にstart()関数がない場合、このモジュール(Expert Advisor、スクリプト、カスタムインジケータ)を起動することはできません。

スクリプトは無限ループで実行できるため、ティックは必要ありません。ティックは、インジケータとExpert Advisor(標準構成で(Expert Advisorも無限ループで実行できるため))に必要です。

しかし、ダニは人工的に起こすことができるのです。また、ストラテジーテスター(ティック生成も可能)なども標準装備されています。

頭を使って、サイト(フォーラム)で検索すればいいのです。

そして、ファイルサーバー技術の長所や短所を持ち込まないこと。

 
MXDEEM:

こんにちは、私はこのコードを持っている、注文の存在を確認し、私は開いている注文を持っている場合は、注文が0になるまで、再度確認するなど。 しかし、専門家は明らかにこのコードを無視し、注文の無限数を開く、エラーは何ですかアドバイスください?

int FunctionBUYnext()
{
int b=OrdersTotal();
if (b>0)
{FunctionBUYnext();}。
else {FunctionSELL();}。
}



MQL4コミュニティ・フォーラム・ナビゲーター
ルール検索投稿方法フォーラム運営不正利用の報告テレパス・クラブ
聞いてはいけない質問
正しい質問の仕方
参考文献便利なソフトウェアインジケータ(Expert Advisorまたはスクリプト)をお探しの方
 

iCustom機能を使ってTrading Expert Advisorに線を引くニーズがあります。
テストとしてZigZagを使用しました。

for(int cnt=0; cnt<10000; cnt++) {
   double zigzag1=iCustom(NULL,0,"ZigZag",15,0,3,  0,cnt+1);
   if( zigzag1!=0 ) 
      break;
}


私の場合、iCustomの目的は線
を引くだけなので(Expert Advisorではインジケータの データは使用しない)、deinit()にコードを入れることにしました。しかし、そこはうまくいかず、何も描画しません。
start()では、すべてOKです。
1.deinit()で動作しないのはなぜですか?
2.
のテストや最適化の際には、上記のコードを無意味に実行しないようにし(CPU時間の浪費を避ける)、テスト対象のヒストリーの最後のバーでのみ実行させる必要があります。
- どうすれば実現できるのか。
ありがとうございました。
 
Roll:

のコードは不合理です。

なぜ?すべて教わったとおりに
 
MXDEEM:

なぜ?は、すべて教師として。

不思議なもので...。

コード」の本体から呼び出される関数は、どこにあるのでしょうか?

コード」自体も結構面白いんですけどね...。

int FunctionBUYnext()
{
int b=OrdersTotal();
if (b>0)
{FunctionBUYnext();}
else {FunctionSELL();}
} 

自分自身への呼びかけを利用して...注文がないときはFunctionBUYnext()を終了させればいいのでは?

さらに -オーダータイプの チェック、シンボルとマジックのチェックもない。

あなたの「先生」をラックに送ります...。

 

問題に直面し...

このスクリプトは、このような形でMessageBox() 関数と連動しています。

//+------------------------------------------------------------------+

#include <WinUser32.mqh>
#import "user32.dll"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int result = MessageBox("Are you ok?", "Caption",MB_YESNO|MB_ICONQUESTION);
   if(result != IDYES) Alert("Кнопка да не нажата");
//----
   return(0);
  }
//+------------------------------------------------------------------+

しかし、文書化されていないMessageBoxTimeoutA() 関数を使用すると、完全に失敗します。

//+------------------------------------------------------------------+

#include <WinUser32.mqh>
#import "user32.dll"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int result = MessageBoxTimeoutA(0, "Are you ok?", "Caption",MB_YESNO|MB_ICONQUESTION, 0, 10000);
   if(result != IDYES) Alert("Кнопка да не нажата");
//----
   return(0);
  }
//+------------------------------------------------------------------+

Yes/Noボタン付きのメッセージウィンドウも表示されない。

誰が遭遇したのか、その犬の埋葬場所を教えてください。

 
artmedia70:

不思議な教えを受けたものだ...。

コード」の本体から呼び出される関数は、どこにあるのでしょうか?

コード」自体も結構面白いんですけどね...。

自分自身への呼びかけを利用して...注文がないときはFunctionBUYnext()を終了させればいいのでは?

さらに - オーダータイプのチェック、シンボルとマジックのチェックもない。

あなたの「先生」をラックに送ります...。

私はあなたがこの部分でチェックを必要とするため、意味を説明し、自分自身を呼び出す、あなたが撤退を行う場合、それは実行開始時に再び戻り、私はそれを必要としない、シンボルとマジシャンが考慮されていない、私の先生インターネット)))))))))))))))))))))))))))))))))。主なアイデアは - 注文があるかどうかを知らせないように、そうでない場合は、特定の関数に スキップすることです。

 
MXDEEM:

私は意味を説明し、我々はこの部分でチェックを必要とするため、自分自身を呼び出す、あなたが終了した場合、それは実行開始時に再び戻り、私はそれを必要としない、シンボルとマジシャンが考慮されていない、私の先生インターネット)))))。あなたが似たようなものを送信する気にしないが、作業、主なアイデア - しない場合は、特定の関数にスキップし、順序、上に聞かせていない。

おおきな声を出すなCapsLockがかかっているのでは...?フォントサイズを 2倍にして、太字にするとか...。

それは、ただ...余談ですが

では、説明しましょう。

そのポイントを説明します。再帰的な呼び出しを行うことで、EAにこの部分まで正確にループさせることができるのです...。つまり、注文やマーケットポジションがある場合、手動ですべての注文とクローズポジションを削除するまで、EA はハングして何もしない(ただハングする)べきなのでしょうか?では、このような自動売買を行う意味があるのでしょうか。もし、あなたが介入しなくても、EAがそこにぶら下がっているのであれば。

EAロジックの考え方を見直す