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

 
Zhunko:

割り当てられたものについては、何とも言えませんね。メタクウォーツに聞くしかないでしょう。

私はすぐにVictorの言葉を信じましたが、...疑問を払拭するために、メタクォートに書き込んだだけです。

ずん子:

MRCでは頻繁にチャートを開いたり更新したりするので、本命の口座をブロックされました。これはMQL4の機能ではなく、社内のチャートビューワーです。

チャートを 頻繁に開く」とはどういうことでしょうか? マーケット環境変数の更新については理解できるのですが、チャートを開いて更新することについては理解できません...

ずん子:

例えば、MarketInfo()はサーバーにアクセスするか、マーケット概要からデータの一部だけを受信するのかもしれません。

サポートに書き込みましたので、返信があり次第、こちらに書き込みします
 
Andrew245:

推測したのですが、見つからないのです、このストップロス・パラメーターは
https://docs.mql4.com/ru/trading/OrderSend
 

以前、図書館の利用について 質問したことがあります。でも、ちょっと戸惑いましたね。

私の理解では、ライブラリはコードを持つ関数のセットで、正確には覚えていませんが、「閉じている」、つまり、プロセスにおいて、ライブラリ関数のコードは外部からの影響を受けないということです。

よく使う機能、それ以外の機能がEAの外に出れば、とても便利になるのは道理です。でも、それならなぜインクルージョンが必要なのでしょうか?結局のところ、図書館はそれがないと動かないのです。では、インクルージョンは必要ないのですか?誰が使っているのか?

 
pako:

年率10%は良いことなのか悪いことなのか?

まあ、バランスカーブをフラットにすることがメインで、MMで利益を増やすことはできると常々言われています。それとも、そうではないのでしょうか?
 
Dmido:

まあ、バランスカーブをフラットにするのがメインで、利益を上げるにはMMを使えばいいと常々言われています。それとも、そうではないのでしょうか?


を増やすようにしましょう。

コリアンが来なければ

 
TarasBY:
現在の日は、現在のD1バーの始まり(iTime(NULL、PERIOD_D1、0))から始まりますが、あなたは簡単な方法を探していないのですか!?:))


が動作しない。

iTime (NULL, PERIOD_D1, 0) prints 137082240

で、関数に挿入すると、利用可能なすべての取引履歴が 印刷されますが、今日の取引は印刷されません....

GetProfitFromDateInCurrency(NULL,-1,-1,(iTime (NULL, PERIOD_D1, 0))); 
видимо правильнее будет GetProfitFromDateInCurrency(NULL,-1,-1,(TimeCurrent()-iTime (NULL, PERIOD_D1, 0)));   НО И ТУТ РЕЗУЛЬТАТ ВСЕ СДЕЛКИ, ВМЕСТО СЕГОДНЯШНИХ
 
lottamer:


が動作しない。

iTime (NULL, PERIOD_D1, 0) prints 137082240

と挿入すると、今日の取引ではなく、利用可能なすべての取引履歴が印刷される機能......。

GetProfitFromDateInCurrency()(original - this is IMPORTANT: I don't know what you must have got there in your version) を使用する場合、このような関数が呼び出されなければなりません。
GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));

で、この関数は、現在の日の初めから決済された注文の利益を返します。

そして、コード中の無意味なものはすべてPrint()で捕捉されます。

 
hoz:
チャートを頻繁に開く」とはどういう意味ですか? マーケット環境変数の更新については理解できますが、チャートを開いて更新することについては理解できません...。
チャートを開いたり更新したりするとき、サーバーに新しいデータの要求があります。欲張りな証券会社の中には、より強力なサーバーや広いチャンネルにお金を使うのではなく、ポケットの中にお金を分散させることを好むところもあります。弱いサーバーが「ハングアップ」しないように、端末からのリクエスト数を制限しなければならないのだ。MRCは1日あたり2000件のリクエストしかありません。これは、取引依頼を 除けば、その商品数にTF数を掛けた数の10倍にも満たない。
hoz:

以前、図書館の利用について質問したことがあります。でも、ちょっと戸惑いましたね。

私の理解では、ライブラリはコードを持つ関数のセットで、正確には覚えていませんが、「閉じている」、つまり、プロセスにおいて、ライブラリ関数のコードは外部からの影響を受けないということです。

よく使う機能、それ以外の機能がEAの外に出れば、とても便利になるのは道理です。でも、それならなぜインクルージョンが必要なのでしょうか?結局のところ、図書館はそれがないと動かないのです。では、インクルージョンは必要ないのですか?誰が使っているのか?

MQL4のインクルージョンは、コードのアレンジに役立ちます。例えば、私の記事で紹介した3000本線のインジケーターはこんな感じです。

#property indicator_separate_window

#include <stdlib.mqh>
#include <stderror.mqh>
#include <ServicesMT4.mqh>
#include <Spectrum.mqh>
#include <TimeFrames.mqh>
#include <GeneralFunctions.mqh>
#include <DynamicArray2.mqh>
#include <SPECTRUM_IND_Macros.mq4>
#include <SPECTRUM_IND_Preset_Buffers.mq4>
#include <SPECTRUM_IND_Extern_Variable.mq4>
#include <SPECTRUM_IND_Global_Variable.mq4>
#include <SPECTRUM_IND_Functions_Project.mq4>

void init()
 {
  int    i = 0;
  string i_sName = StringSubstr(WindowExpertName(), 0, StringLen(WindowExpertName()) - 8);
  g_nCounterStart = 0;
  #include <SPECTRUM_IND_Check_Param.mq4>
  if (Postfix == "") g_sNameIndicator = i_sName + g_sPostfix;
  else g_sNameIndicator = i_sName + g_sPostfix + Postfix + " ";
  g_sNameObject = g_sNameIndicator + "Derivative ";
  g_sNameLine = g_sNameIndicator + "Line ";
  g_sNameSpectrum = g_sNameIndicator;
  IndicatorShortName(g_sNameIndicator);
  #include <SPECTRUM_IND_Extern_Variables_In_Array.mq4>
  #include <SPECTRUM_IND_Buffers.mq4>
  ServiceRefreshChart(WindowHandle(Symbol(), 0), 1000);
 }

void deinit()
 {
  ObjectsDeleteAll(g_nWindow);
  DeleteObject();
 }

void start()
 {
  if (g_bStop) return;
  #include <SPECTRUM_IND_Start_Variable.mq4>
  #include <SPECTRUM_IND_Start_Initialize.mq4>
  #include <SPECTRUM_IND_Optimization.mq4>
  #include <SPECTRUM_IND_Calc_Filters.mq4>
  #include <SPECTRUM_IND_Calc_Last_Derivative.mq4>
  #include <SPECTRUM_IND_Show_Lines.mq4>
  #include <SPECTRUM_IND_Show_Sum.mq4>
  g_nBegin = s_nBegin;
  g_nTemp_SizeChart = s_nSizeChart;
  g_tLastTime = iTime(NULL, g_nPeriod, 0);
  ArrayCopy(g_adTemp_PriceBeginBar, s_adPriceBeginBar);
 }
似たような操作の5行が蓄積されるとか、別のアルゴリズムとか、グループの基準があり、それを別ファイルに割り当てることができる。それでも、10000行のコードを一度に見るより、200行までのコードを見たほうがいい。ツッコミを入れるのに疲れます。MQL4では、関数呼び出しは避けた方が無難です。特に、ループでは。可能であれば、機能を公開した方が良い。コードの動作が格段に速くなります。ここでは、インクルージョンが大きな助けとなります。

残念ながら、コンパイラは1つのインクルージョンを1つのモジュール内で複数回使用することを許可していません。これは通常、繰り返しのコードを節約するための方法です。

 
hoz:
私はすぐにVictorの言葉を信じましたが、...疑問を払拭するために、先ほどメタクオーツに書き込みました。
...

ビクターの言うことは、まったくもって正しい。チャートを開いた ときに来るサーバーへのリクエストは、エミュレーター機能からのリクエストではなく、ユーザーの手動操作によるものです。

 
Integer:

ビクターの言うことは、まったくもって正しい。チャートを開いたときに来るサーバーへのリクエストは、エミュレーターの機能からのリクエストではなく、ユーザーの手動操作からのリクエストです。

チャートからのリクエストは、RefreshRates()からのリクエストと同様です。サーバーを指しているのは間違いない。とはいえ、RefreshRates()は取引用の関数では ありません。

メタクボに聞くしかないですね。