どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 673

 

すなわち、次のようなことです。

// Простой параболик. Переворотная стратегия.
// В условиях, когда в терминале уже есть открытые позиции по другим инструментам.

input double TakeProfit    =2500;
input double StopLoss      =400;
input double Lots          =1;
input double TrailingStop  =100;

input double Parameter1    =0.02; // Параметры индикатора PSAR
input double Parameter2    =0.2;
   
static int ticket_sell     =0;

void OnTick()
{
[Deleted]  

こんにちは。Comment(TimeToStr(TimeLocal(),TIME_SECONDS)) を挿入する方法を教えてください。

インターネットが悪いのか、時刻(ローカル)が新しいティックでしか更新されないのか、時刻が正しいのにExpert Advisorが動作しなくなるのか、どちらかです。

 
Irina_:

こんにちは。Comment(TimeToStr(TimeLocal(),TIME_SECONDS)) を挿入する方法を教えてください。

インターネットが悪いのか、時刻(ローカル)が新しいティックでしか更新されないのか、時刻が正しいのにExpert Advisorが動作しなくなるのか、どちらかです。


OnTimer()内のクロックはtickに依存しないように記述する必要があります。
[Deleted]  

OnTimer()を使ったことがないのですが.どのよう な感じになるのでしょうか?私は初心者です。

今はこうやってやっています。


int start()

{以下はフクロウのコードです。

- - - - - - - - - - - - - - - -

を最後に付けました。

while(!IsStopped())

{

Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +""+TimeToStr(TimeCurrent(),TIME_SECONDS) )

}

return(0)です。

}

表示されているようですが、EAがすでに2つほど注文を出した15分後に、チャートにコメントが表示されます。 なぜでしょうか?

 
Irina_:

OnTimer()を使ったことがないのですが.どのよう な感じになるのでしょうか?私は初心者です。

今はこうやってやっています。


int start()

{以下はフクロウのコードです。

- - - - - - - - - - - - - - - -

を最後に付けました。

while(!IsStopped())

{

Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +""+TimeToStr(TimeCurrent(),TIME_SECONDS) )

}

return(0)です。

}

表示されているようですが、EAがすでに2つほど注文を出した15分後に、チャートにコメントが表示されます。 なぜでしょうか?


int OnInit()
{

EventSetTimer(нужное количество секунд);
   




   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();
   



}
//+------------------------------------------------------------------+
void OnTick()
{

   
}
//+------------------------------------------------------------------+
void OnTimer()
{


Comment(TimeToStr(TimeLocal(),TIME_SECONDS));
} //+------------------------------------------------------------------+
[Deleted]  
ありがとうございます、やってみます。
削除済み  
vadynik:

値を失わないためには、グローバル変数が必要で、その宣言をOnTick()の外に移すか、静的変数 にする必要があります。
グローバルスコープの外に移動して静的化する必要はありません。関数の内部です。position_existsの次です。
 
simpleton:
わざわざ取り出してグローバルにする必要はなく、静止画にすれば十分です。関数の内部です。position_existsの次です。

で、何を書いたかというとオア
 
rusa:
メタトレーダー4のEAは、アンドロイド端末で動作しますか?
いいえ、そこにはEAに関する規定は全くありません。
 
Mr.Profit:

SymbolSelect("AUDUSD", true) は、AUDUSD が MarketWatch にない場合、つまりペアが MarketWatch に追加された場合のみ true を返すことが判明しました。一旦ペアがMarketWatchに入ると、それ以降の呼び出しはfalseを返します。

この動作は、この機能のマニュアルと全く一致していません。

SymbolName(i, true) fori=0.SymbolsTotal(true) を全てスキャンする自作関数を使う必要がありました。

すべてがフィットする。

この関数の2つ目のパラメータはスイッチです。

1.trueを送信した場合、Market Watchでシンボルを選択する必要があります。

1.1.まだ存在しない場合は、選択され、関数がtrueを返します。

1.2.すでに存在する場合は、この関数は動作せず(選択するものがない)、falseを返します。

2.false を送信した場合、そのシンボルはマーケットウォッチから削除されるはずです。

2.1 もし、そのシンボルが存在し、そのシンボルのオープンチャートやオープンポジションが ない場合、そのシンボルはマーケットウォッチから削除され、この関数はtrueを返します。

2.2 もしそれが存在しても、そのシンボルのチャートが開いていて、かつ/またはそのシンボルのポジションが開いている場合、この関数は機能せず、偽を返します。

2.3 存在しない場合、この関数は動作せず(削除するものがない)、false を返します。

こんな感じです...