初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 571

 
Artyom Trishkin:

以前、こんな質問があったんです。


アレクセイ・ヴィクトロフ

lot = (absolute_value(profit_order) + 希望利益) / (size_standard_contract * TR * ポイント)

Artyom Trishkin さん、ありがとうございました。

Alexey Viktorov さん、ありがとうございました。

 
Karputov Vladimir:
非同期操作」の定義そのものを理解しているか?そうすれば、問答無用になるはずです。
とてもよくわかります!(笑だから聞いたんです。私はあなたと小便の 能力を争うつもりはない。
 

同僚よ、初心者のプログラマーを助けてやって くれ。

カスタム関数のコードを作成し、設定で時刻を「13:45」という通常の形式で3回設定すると、私の関数が真か偽を返すようにしました。まずExpertに関数を挿入するというものでした。価値を確認し、本当なら取引して次に進むことができるのです。

返されたパラメータはすべてAlertでチェックされ、すべての段階ですべてがクリアになっていたのですが、最終的にはStart関数で間違った宣言をしてしまったようで、「パラメータの数が間違っています」というエラーが発生しました。

コードは長いので、ハイライトを紹介します。

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

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (取引時間許可)。

if (TradingAllowed = true) { Alert ("Buy 1 lot");}.

else { Alert ("取引は許可されていません"); }.

}

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

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //関数自体はあります。 Alert経由でOnTickに挿入してテストしています。真か偽を出力します。

{ ....................}

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

そして、2つ目の問題は、最後の関数自体にあります。

今は、そこに間違って配置されています。

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok)とする。

//すなわち、「誰が最後か、誰が次か」が問題なのです。1番目のピリオドが真、または2番目のピリオドが真で、3番目のピリオドが偽であれば、偽を記憶することになります。しかし、私の考えによれば、少なくとも1つが真であれば、最終的な値は真であることに変わりはない。

このように表現してみました。

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // しかし、このようにエラーを書き込むことになります。何が嫌いなのかわからない。

良いアドバイスをお願いします。


 

最初の問題は、隣のスレッドの親切な人たちの協力で解決した。この関数は正しく呼び出され、必要な値が出力されます。

2つ目の問題が残っています。

そして、2つ目の問題は、最後の関数自体に あります。

今、そこに書かれているのは誤りです。

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok)とする。

//すなわち、「誰が最後か、誰が次か」が問題なのです。1番目のピリオドが真、または2番目のピリオドが真で、3番目のピリオドが偽であれば、偽を記憶することになります。しかし、私の考えによれば、少なくとも1つが真であれば、最終的な値は真であることに変わりはない。

このように表現してみました。

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // しかし、このようにエラーを書き込むことになります。何が嫌いなのかわからない。

良いアドバイスをお願いします。

 

から移管されました。

アンドレイ・コルドルキン

同僚、初心者のプログラマーを助けて ください。

設定に「13:45」というおなじみのフォーマットで時間を設定すると、3つの時間セッションに対してtrueまたはfalseを返すカスタム関数のコードを作成しようとしました。まずExpertに関数を挿入するというものでした。価値を確認し、本当なら取引して次に進むことができるのです。

返されたパラメータはすべてAlertでチェックされ、すべての段階ですべてがクリアになっていたのですが、最終的にはStart関数で間違った宣言をしてしまったようで、「パラメータの数が間違っています」というエラーが発生しました。

コードは長いので、ハイライトを紹介します。

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

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (取引時間許可)。

if (TradingAllowed = true) { Alert ("Buy 1 lot");}.

else { Alert ("取引は許可されていません"); }.

}

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

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //関数あり。 Alert経由OnTickに挿入して確認しました。真または偽を生成する。

{ ....................}

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

そして、2つ目の問題は、最後の関数自体にあります。

今は、そこに間違って配置されています。

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok)とする。

//すなわち、「誰が最後か、誰が次か」が問題なのです。1番目のピリオドが真、または2番目のピリオドが真で、3番目のピリオドが偽であれば、偽を記憶することになります。しかし、私の考えによれば、少なくとも1つが真であれば、最終的な値は真であることに変わりはない。

このように表現してみました。

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // しかし、このようにエラーを書き込むことになります。何が嫌いなのかわからない。

お願い、助けて。

 

移管

<br /> translate="no">アンドレイ・コルドルキン


セルゲイ・ウラジミロフ

1) 関数は6つの文字列パラメータを必要とし、あなたは1つのbooleanパラメータでそれを呼び出します。2) 等号は"="ではなく、"=="です。

 
ええ、すべて解決しました。ミスはなくなる。ありがとうございます(苦笑)。
 

から移管されました。

LeonidB:

問題解決に貢献しよう

ニュースカテゴリの設定が保存されない。端末を再起動すると設定がリセットされます。再インストールしてもダメ、管理者として実行してもダメ。Windpws 10.設定を担当するすべてのファイルを見つけましたが、変更の日付は常にターミナルのシャットダウンの日付と一致し、つまりファイルは上書きされます。私が理解する限り、設定を担当するファイルは、terminal.ini, settings.ini, hotkeys.ini, common.ini (configフォルダにあります), news.dat (newsフォルダにあります)です。

また、以下の設定は保存されません:表示 - 最終価格行。この点は、ニュースの設定とは対照的にクリティカルではありませんが、同じ鎖の中のリンクだと思います。


 

皆さんこんにちは、Fourに投稿しました。みんな、どうしたのか見てください。2行でインジケータのコードになるようですが、リアルタイムで動く気がしません :-(

3枚の写真が掲載された投稿へのリンクです...。

https://forum.mql4.com/ru/56236/page1041

ありがとうございます!!!!

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
こんにちは、この問題について相談させてください。MT5でEAを書いていて、必要なパターンを自動的に検索して手動でポジションを建てるのに使いたいと考えていました。つまり、EAにトレーディング機能はありません。私の問題は、このEAをチャートにインストールできないことです。EAにインジケーターコールはありません。 すべての指標はプログラムで記述されています。コンパイルしてストラテジーテスターで動かしてみました。特に問題はなかった。チャートにEAを置いて、画面上、設定、ポップアップするEAウインドウで取引できるように したところです。チャート上のスマイリーフェイスの代わりに、Expert Advisorのアイコンが価格チャート上に表示され、緑の円の中に白い三角形が表示されます。この手順を何度か試しましたが、やはり同じ結果になりました。価格チャートで期間を変更したところ、OnDeinit()のメッセージがモニターに表示され、つまりプログラム内で1本のローソク足が処理されて作業が停止します。

ログブックを見てみた。

- EAをインストールしようとすると、プロファイル変更のメッセージが表示されることがある。

- 他のすべての試行では、EAは問題なくロードされます。

以前はプロファイルを使って作業していました。プロファイルの数を増やし、プロファイルごとに異なるチャートを設定しました。もし、そこに何か問題があったとしても、残念ながら私はそれを知りません。プログラムがプロファイル変更のメッセージを送信するために、何が壊れなければならないのかわかりません。他の原因による故障の可能性もありますが。私にはよくわかりません。

テストのために、今日、新しいEA(テンプレート)を作り、OnInit()、OnDeinit(const int reason)、OnTick()関数には何も書かず、このEAをチャート上に置いて取引できるようにしてみました。

以前と同じ状況になりました。

この状況を理解するために協力してください。 ありがとうございます!!!!

理由: