"ダミー "からの質問 - ページ 24

 
tol64:
簡単な例を教えてください。
どの行で警告が出るのか、どのタイプで警告が出るのか、コードを表示する。
 
sergeev:
どの行で警告が出るのか、どのようなタイプで警告が出るのかを示す。

void OnStart()
  {
//--- выведем всю информацию, доступную из функции AccountInfoInteger()
   printf("ACCOUNT_LOGIN =  %d",AccountInfoInteger(ACCOUNT_LOGIN));
   printf("ACCOUNT_LEVERAGE =  %d",AccountInfoInteger(ACCOUNT_LEVERAGE));
   bool thisAccountTradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_ALLOWED);
   bool EATradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_EXPERT);

   ENUM_ACCOUNT_TRADE_MODE tradeMode=AccountInfoInteger(ACCOUNT_TRADE_MODE);           // На этой строке: Строка 25 Столбец 40 и Столбец 78
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);   // И на этой     : Строка 26 Столбец 44 и Столбец 86

...
コードにハイライトとコメントが表示されます。
 
tol64:

コードにハイライトとコメントが表示されます。

   ENUM_ACCOUNT_TRADE_MODE tradeMode=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);

 
uncleVic:

ありがとうございます。また、ストップアウトレベルモードの設定についてもお聞きしたいです。このモードは取引サーバーで設定されているものしかわからないのですか、それとも変更できるのですか?
 
tol64:
ありがとうございます。また、ストップアウトレベルモードの設定についてもお伺いしたいです。このモードは取引サーバーで設定されているため、このモードしかわからないのですが、変更することは可能でしょうか?
Stop Out は読み取り専用で、設定することはできません。また、AccountInfo...()関数が操作するものは、すべて読み取り専用である。
 
tol64:

コードにハイライトとコメントが表示されます。

ありがとうございます、例を修正しました。これで、コンパイラはこの例で警告を発しないようになりました。
 

あるデータ/プロパティを読み込む必要がある場合は、uncleVic が示したバリアントを適用する必要があることがわかりました: https://www.mql5.com/ru/forum/3775/page24#comment_84143

例えば、一見論理的に見える(mql4 移行でおなじみの)このようなことをすると、コンパイラは警告を発生させます。

   int val_x_dist;
   int val_y_dist;
   
   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   val_x_dist = ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   val_y_dist = ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

コンパイラの警告を消すには、次のどちらかを行う必要があります。

   int val_x_dist;
   int val_y_dist;
   
   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   val_x_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   val_y_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

あるいは、uncleVicが 実証したように、である。

   Create_Label(0,"INFO","//-------------------- INFORMATION --------------------//",ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,font,font_sz,fnt_clr_hdr,10,20);
   
   ENUM_OBJECT_PROPERTY_INTEGER val_x_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_XDISTANCE,0);
   ENUM_OBJECT_PROPERTY_INTEGER val_y_dist = (ENUM_OBJECT_PROPERTY_INTEGER)ObjectGetInteger(0,"INFO",OBJPROP_YDISTANCE,0);

うまくいったかな?

 
AUser:
乱数発生器の 仕組みと、偶数・奇数チェックの機能があるかどうか教えてください。ジェネレーターについては、ダミーに理解できる言語での説明が望ましいです)))ヘルプが理解できない))

ここでは、ある関数が何をしているのかを調べる最も簡単な例を紹介します。スクリプトを実行し、ログを見てください。

void OnStart()
  {
   int x;
   
   x = MathRand();
   
   Print("x : ",x);
  }
 
#define Vrsn "0.01a"
#property version   Vrsn

ChartSaveTemplate(Chrt_Smbl_ID_Crrnt,Vrsn);

テンプレートは0.tplとして保存されます。

#define Vrsn "001a"

テンプレートは001a.tplとして保存されますが、これは実際に取得したいものです。

質問:事前にドットを除去するにはどうすればよいですか?

正確には、「文字列の中の文字を見つけるには?

をアップグレードし、またまた混乱。にドットがある場合

#define Vrsn "0.01a"

があると、その後にあるものだけでなく、平坦化されたものもある。

ChartSaveTemplate(Chrt_Smbl_ID_Crrnt,Vrsn+Smbl_Crrnt);
コンパイル時にStringToIntegerが 発生する場合、なぜ...
 
Silent:

テンプレートは0.tplとして保存されます。

テンプレートは001a.tplとして保存されますが、これは実際に取得したいものです。

質問:事前にドットを除去するにはどうすればよいですか?

文字列の中の文字をどうやって見つけるか?

また、誤解もあります。であれば

ドットがあると、それ以降を切り落とすだけでなく、平らにしたものを切り落とす。

なぜかというと、おそらくStringToIntegerは コンパイル時にトリガーされると思われるからです。

ディスクに書き込まれるものは、必ずゴミや悪意がないかをチェックされる。

テンプレートを書くと、ユーザーが何を望んだかに関係なく、テンプレートは拡張子tplのファイルになるはずです。そのため、名前の中にあるユーザー定義のドットが切り取られているのです。