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

 
Sprut112:
EAがヘッジで取引する。何らかのチェックを標準装備したほうがいいのでは?

ひょっとして、セントアカウントでテストしているのでしょうか?一部のセント口座では、最小ロットは0.1です。

 
Konstantin Nikitin:

テスター、ビルド1960で普通に取引してます。12組のペアで同時に使用する場合、どのようなロットを置けばよいのでしょうか。

なぜ16号は0.01ロットなのですか?
 
Konstantin Nikitin:

ひょっとして、セントアカウントでテストしているのでしょうか?一部のセント口座では、最小ロットは0.1です。

いいえ、min maxとlot incrementsのチェックがあります。
 
Sprut112:
また、なぜ16番ロット0.01なのでしょうか?

私の写真で言うなら、エキスパートで部分的に閉じているのが効いたのでしょう。近いと書いてある。

Sprut112:
いいえ、最小値、最大値、ロット単位でチェックします。
そこで、このチェックでは、現在のものより大きい最小値を探して代入しているのかもしれません。
 
Konstantin Nikitin:

私の写真で言うなら、専門家の部分的な閉鎖が効いたのでしょう。クローズと書いてありますが

そこで、このチェックでは、現在のものより大きい最小値を探して代入しているのかもしれません。
そのように考えることもあります。テスターではすぐには起きず、約1ヶ月後
 
Artyom Trishkin:

mql4で#property strictを使うと、なぜあなたのコードは思い通りに動かないのでしょうか?

ウラジミールさんが見せてくれたコードとそんなに根本的に違うのか。

そして、これらの実装に差はありません。そして、あなたのコードがテキストの記述を出力しない理由はただ一つ、mql4のコードに#property strictが存在しないことです。


すぐにはわからず、=0、=1などがないので、自分には使えないと思っていたのですが...。

enum MySymbol
     {
      symbol_0=0,// AUDUSD
      symbol_1=1,// NZDUSD
      symbol_2=2,// USDCAD
      symbol_3=3,// USDCHF
      symbol_4=4,// USDJPY
      symbol_5=5,// EURJPY
      symbol_6=6,// EURUSD
      symbol_7=7,// GBPUSD
      symbol_8=8,// #CL
     };

が、同じものであることが判明した...。

string xx=EnumToString(Symboll_(1)); //結果 symbol_1

NZDUSDを買えばよかった

  в таком варианте всё Ок но не получается добавить символ с решёткой #CL
enum  Symboll_
  {
   AUDUSD,
   NZDUSD,
   USDCAD
   //#CL
  };
string xx=EnumToString(Symboll_(1)); // результат NZDUSD

でも、配列のバリエーションは、まさに私が必要としていたものです...。

 
xxz:

すぐには理解できず、=0、=1などがないので失敗したと思ったが...。

が、同じものであることが判明した...。

string xx=EnumToString(Symboll_(1)); // 結果 symbol_1

NZDUSDを買えばよかった

でも、この配列のバリエーションは、まさに私が必要としていたものです...。

当然ながら、EnumToString()で列挙を出力する場合は、「//」の後ろにある変数の説明ではなく、変数そのものがそのまま出力されます。

列挙を思い通りに表示するには、EnumToString()のような関数を作る必要があります。

このような列挙の場合。

enum ENUM_SYMBOL_NAMES
  {
   SYMBOL_NAME_AUDUSD,     // AUDUSD
   SYMBOL_NAME_NZDUSD,     // NZDUSD
   SYMBOL_NAME_USDCAD,     // USDCAD
   SYMBOL_NAME_USDCHF,     // USDCHF
   SYMBOL_NAME_USDJPY,     // USDJPY
   SYMBOL_NAME_EURJPY,     // EURJPY
   SYMBOL_NAME_EURUSD,     // EURUSD
   SYMBOL_NAME_GBPUSD,     // GBPUSD
   SYMBOL_NAME_SHARP_CL,   // #CL
  };
input ENUM_SYMBOL_NAMES InpNames; // Instrument

こんな感じ。

//+------------------------------------------------------------------+
string InstrumentToString(void)
  {
   string enm=EnumToString(InpNames);
   int index=StringFind(enm,"SHARP_");
   int shift=(index>WRONG_VALUE ? index+6 : 12);
   string name=StringSubstr(enm,shift);
   return(index>0 ? "#"+name : name);
  }
//+------------------------------------------------------------------+

そして、コール。

Print(InstrumentToString());
 
double get_lot(int pair, double input_lots) {
   if(input_lots<min_lot[pair]) return(min_lot[ir]);
   return(input_lots);
 
Konstantin Nikitin


:

私の写真で言うなら、エキスパートで部分的に閉じているのが効いたのでしょう。近いと書いてある。

そこで、このチェックでは、最小値が現在の値より大きいかどうかを調べて代入しているのかもしれません。
 if(SymbolInfoDouble(Symb,SYMBOL_VOLUME_STEP)<0.1) dg=2; else
      if(SymbolInfoDouble(Symb,SYMBOL_VOLUME_STEP)<1.0) dg=1;

それは違うと思うんです。

 
Vladimir Karputov:

それよりも、何を実現したいのかをはっきりさせることです。おそらく完全な例を挙げるでしょう。

昔々、2010年の冬のこと。また、インジケーターのフィルタリングをお願いしたのですが、その本質は、iBarsに対してPERIOD_MN 1でMach & Min HLineを描画することでした・・・))))

自分で考えたんです。MT4をマスター。

すぐにではなく、ゆっくりですが、MT5をマスターしています。

..."Clearly state what you want to get" FORMULA: I am converting (myself) what I have programmed (myself), and at same time I mastering (myself) MT5 ))


しかし、あなたが例示してくれたもの(視覚的なもの)は、まだ消えていません。


IF SO I'll go back )))

SHOなら、また行こう






 
Artyom Trishkin:

当然ながら、EnumToString()を使って列挙を出力すると、"//"の後ろにある変数の説明 文ではなく、変数そのものがそのまま出力されることになります。

それを思い通りに出力するには、EnumToString()の類似関数を作る必要があります。


なぜなら、最も単純なタスクを解決するためには、関数を作成しなければならず、これは誰も必要としないコードの山だからです。

10の1行ではなく、...

なるべく簡潔に!と思っているのですが・・・。

本来なら、コードに一行加えるだけでこの問題を回避できるのですが

            xx=iClose(Symbol_(i),0,50);
xx=iClose("#CL",0,50);

が、コードに余分な行があるだけで好きになれなかった...。

私は "汚い "コードが好きではないのですが......。

理由: