[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 378

 
Dimka-novitsek:
テスト中に可視化テストでデータを表示させたいと思いました。Expert Advisorを1つだけテストしてみる。テスト中のため、同じチャートに別のEAをドラッグしています。コメントが見当たりませんExpert Advisorは笑顔で...


このままではうまくいきません。ビジュアルテストチャート 上にドラッグされたEAは、全く何も表示されないか、テスターではなくアカウントにあるものが表示されます(正確には分かりませんが、このようなものを作る創造性が欠けていました:)。

 

グラフにコメントがないじゃないか。

int start()
  { Comment("OrdersProfit  ",OrderProfit(),"AccountBalance  ",AccountBalance(),"Equity  ",AccountEquity());
//----
  double Itogo_Profit=Orderasthitaem();
  if (Itogo_Profit>ProfitSeriyniy){Pozuminusudalaem();}
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Integer:

Vadimさん、塗ってみましたか?何も同期しない。最近、遊んでいるんです。キューは自分で作らなければならない。残念ながら、コードを3行減らすだけである。というか、理解できない。
試していない。これからやってみます。今は全部DLLでやってます。そっちの方が楽だから。
 
インテージさん、ありがとうございます!!!
 

なるほど VVel in init()
{
//----
Comment("OrdersProfit ",OrderProfit(), "AccountBalance ",AccountBalance(), "Equity ",AccountEquity());
//----
return(0);
}.

テスターには何もない。まあ...

 

Dimka-novitsek:


なるほど VVel in init()
{
//----
Comment("OrdersProfit ",OrderProfit(), "AccountBalance ",AccountBalance(), "Equity ",AccountEquity());
//----
return(0);
}.

テスターには何もない。まあ...


もしかしたら、貼り付けたExpert Advisorにコメント出力機能があるかもしれません。 このEAで何回Comment() 関数が呼ばれているか確認してみてください。

OrderProfit()を出力するには、まず注文を選択する必要があります。

あと...initでやる意味ってなんですか?start()の中で行う必要があります。

 
Integer:


もしかしたら、これが挿入されているEAにもコメント出力機能があるかもしれません。 EAでComment()関数が呼ばれる頻度を調べてみてください。

OrderProfit()を出力するには、まず注文を選択する必要があります。

あと...initでやる意味ってなんですか?start()の中で行う必要があります。



Initeでは、自分のものが何かを書いているかどうかを確かめたかったのですが、ダニはありません。そして、この行をinitの中に複製したのです。そして、OrderProfit()でメチャクチャにした!

ここで、パズルの全体像が見えてきました。信じられるか!!!!4063 は整数の パラメータであることが期待される。

ここで-

OrderClose(  Orderasthitaem[i,0,1], Orderasthitaem[i,0,2], Bid, 5, 0) ; Error=GetLastError(); 

ダブレット型の配列。Ticketはまさに整数とチケットですが、doubleになることが判明しました。関数doubletから整数を得るには?

すみません、全く理解できません。

 
Integer:

Vadimさん、応用してみましたか?同期をとることは一切ありません。最近、遊んでいるんです。行列は自分で手配する必要があります。残念ながら、3行分しかコードを短くすることができません。というか、理解できない。

キューは他の言語と同じように整理されています。保護すべきブロックの入出力の組織化を通じて、それ自体で。

これはスクリプトです。

#property show_inputs

extern int Pause = 1000;

int    hwndChart = NULL; // Уникальный идентификатор скрипта.
string sName = "Condition";

void init()
 {
  hwndChart = WindowHandle(Symbol(), 0);
  // Создаём глобальную переменную синхронизации скриптов.
  if (!GlobalVariableCheck(sName)) GlobalVariableSet(sName, 0);
 }
 
void deinit()
 {
  GlobalVariableDel(sName);
 }

void start()
 {
  while (!IsStopped())
   {// Начало блока синхронизации.
    GlobalVariableSetOnCondition(sName, hwndChart, 0);
    if (GlobalVariableGet(sName) == hwndChart)
     {
      Print("Start");
      Sleep(Pause); // Имитация работы.
      Print("End");
     }
    GlobalVariableSetOnCondition(sName, 0, hwndChart);
    // Завершение блока синхронизации.
    Sleep(200);
   }
 }
カットに関しては、他の機能に置き換えるのと同じで、うまくいきません。そのためのアトミックアクセスなのです。MQL4では1つの関数だけがこれを行うことができます。
整数
つまり、この関数を使うだけで、一度に1つのEAしか動作しないようにできますが、キューが構築されないので、1つのEAがアイドル状態になり、別のEAが2回呼び出される可能性があります。

問題なく使えるようです。3000、2000、1000、500、300、200のポーズで6つのスクリプトをロード。以下はログの一部です。

19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY スタート
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD スタート
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 終了。
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 終了。
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSDスタート。
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 終了。
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD スタート
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 終了。
19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD スタート
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 終了。
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD スタート
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 終了。
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD スタート。
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 終了。
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 終了。
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD スタート。
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 終了。
19:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY スタート
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY End
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD スタート
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 終了。
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 終了。
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSDスタート。
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 終了。
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD スタート。
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 終了。
19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD スタート
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 終了。
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 終了。
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSDスタート。
19:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD 終了。
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD スタート
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 終了。
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Start
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD 終了。

 
ある時点で1つの関数が実行されるという意味では機能しますが、順序が守られていないのです。
 
Dimka-novitsek:


...ダブレット関数から整数を得るには?

int Int(double v){

return(v);

}