MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1087

 
Sysmart:

テストに関する質問(テスターからの写真参照)

- 売り注文を出すと(画像の緑矢印)、テイクプロフィットが1.10439となる。

- 1.10441で売り逆指値注文(図の黄色い矢印)を保留して おきます。

問題は、なぜテイクプロフィット注文が1.10439で、セルストップ(赤い矢印)が1.10441で発動しなかったのか、ということです。

1.3000で買うと、悪い価格1.3003(例)で高価に買い、1.2020で売ろうとTPを設定したポジションを決済すると、Bidが1.2017、Askが1.2020の価格で取引が終了、つまりポジション管理のために2倍のスプレッド分を支払い、差額は事務所のポケットに入ることになるのです。また、NDB(5桁)のような流動性の高い口座で取引することも可能です。

 
novichok2018:
こんにちは!私の質問はオフトピックですが、本当に有能な回答を得たい場合、どこで質問すればいいのかわかりません。Googleは役に立たなかった。問題は、今日のDAX30指数が9時ではなく、2時15分に突然取引を開始したことだ。フランクフルト証券取引所のサイトも含め、どこにも説明や警告は見当たらない。もしかしたら、もっと詳しい人がいて、どこに情報があるのかヒントをくれるかもしれませんね。

さて、誰もこの問題を認識していないので、EAの開始をシンボルの取引開始にバインドする方法をアドバイスしてください。今、私は時間に対する単純なバインディングを持っています: if(Hour()==9) {CODE}.そのため、開始時間を9:00から2:15に変更すると、オープニングポジションの 条件が働かなくなるのです。また、単に時間を変えただけでは、取引開始時刻が再び変わる保証はなく、気づかないこともあります。

 
novichok2018:

さて、誰もこの問題を認識していないので、EAの開始をシンボルの取引開始にバインドする方法をアドバイスしてください。今、私は時間に対する単純なバインディングを持っています: if(Hour()==9) {CODE}.そのため、開始時間を9:00から2:15に変更すると、オープニングポジションの 条件が働かなくなるのです。また、単に時刻を変えただけでは、取引開始時刻が再び変わる保証はなく、気がつきません。

コドベースを検索する

最初の1枚はこちらhttps://www.mql5.com/ru/code/27315

 
Sysmart:

テストに関する質問(テスターからの写真参照)

- 売り注文を出すと(画像の緑矢印)、テイクプロフィットが1.10439となる。

- 1.10441で売り逆指値注文(図の黄色い矢印)を保留して おきます。

問題は、なぜテイクプロフィット注文が1.10439で、セルストップ(赤い矢印)が1.10441で発動しなかったのか、ということです。

売り注文は買値で始まり、売値で終わりますが、買い注文はその逆です。以上です。

 
Igor Makanu:

コドベースを探す

最初の1枚はこちらhttps://www.mql5.com/ru/code/27315

もちろん、ありがとうございます。しかし、この例はオフトピックです。特定の商品の取引開始時間や 、その商品を取引している取引所の開始時間へのリンクが必要です。コドベースの中に見つからなかった。

 

こんにちは、私はコードを書いていて、この問題に遭遇しました。

行を除外すれば、コードは動作します。

#property strict

とともに、すぐに動かなくなります。

以下は、エラーが検出されたコードの断片そのものです。

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

そして、その結果がこちらです。

whichBars' - 宣言されていない識別子;フラグメントの7行目

whichBars' - 未宣言の識別子;フラグメントの8行目


これはどうしたら直るのでしょうか?

 
pykachilo:

こんにちは、私はコードを書いていて、この問題に遭遇しました。

行を除外すれば、コードは動作します。

とともに、すぐに動かなくなります。

以下は、エラーが検出されたコードの断片そのものです。

そして、その結果がこちらです。

whichBars' - 宣言されていない識別子;フラグメントの7行目

whichBars' - 未宣言の識別子;フラグメントの8行目


これはどうしたら直るのでしょうか?

whichBarsは条件ではなく、関数の先頭で定義する必要があります。
 

こんにちは。

ここで質問ですが、ドキュメントの「Graphic Event Types」(https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)に
イベントCHARTEVENT_KEYDOWN では、パラメータ sparam が "キーボードボタンの状態を表すビットマスクの文字列値" と定義されています。

しかし、どのビットが何を担っているかという情報は見当たりません。

CHARTEVENT_MOUSE_MOVE イベントでは、sparam パラメータに「マウスボタンの状態を記述したビットマスクの文字列値」を指定します。
は、同ページで詳しく解説しています...。

CHARTEVENT_KEYDOWN イベントの sparam="string value of bitmask describing the status of keyboard buttons" に関するドキュメントはどこにありますか?

ありがとうございます。

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

CHARTEVENT_KEYDOWN イベントの sparam="string value bitmask describing the status of keyboard buttons" のドキュメントはどこにありますか。

を選択すると、目的のボタンに対してPrint(sparam)で印刷することができます。

あなたのタスクは知りませんが、私自身はlparamを使う方が好きなので、言語やキャプションなどのバリエーションを考える必要がありません。

 
Igor Zakharov:

を選択すると、目的のボタンに対してPrint(sparam)で印刷することができます。

あなたのタスクは知りませんが、私自身はlparamを使う方が好きなので、言語やキャプションなどのバリエーションを考える必要がありません。

これは一般的なケースを想定した興味深い解法です。特定のキーについて、あらゆる可能な組み合わせ(言語、キャップなど)を経て、何が起こるかを確認し、さらにそこから何らかの結論を導き出そうとすることができるのは明らかです。
BUT、この問題はドキュメントに反映されるべきです。 マウスイベントについては、そうです - すべてがドキュメントに用意されています。キーボードはどうですか?