MQL5言語をゼロから独学で学ぶ - ページ 81

 
Alexey Viktorov #:

本当に書かないでほしい...。

以下は、動作する関数です。

完全なフリーマージンからカウントされないようにリスク量を入力するだけなのですが・・・。

アレクセイさん、ご感想ありがとうございます。私のバージョンのロット計算は動作し、配列が書かれているその部分だけが動作しません。

もともとは、通貨ペアごとに異なるリスクサイズを設定できるように設計したんです。

正直なところ、このコードを多通貨EAに使用する方法がよくわかりません。

ウラジミールさん、ありがとうございます。

 
MrBrooklin #:

アレクセイさん、ご感想をありがとうございます。私のバージョンではロット計算がうまくいき、配列が書かれているその部分だけがうまくいきません。

元々、通貨ペアごとに異なるリスクサイズを指定できるように設計されています。

正直なところ、このコードを多通貨EAに使用する方法がよくわかりません。

敬具 ウラジミール

とてもシンプルです。ここまで学んできて、まさか難癖をつけるとは思いませんでした。

/********************************************************************\
|   Calculate optimal lot size     Расчет объема лота                |
/********************************************************************/
//double contractSize(double Lot)
double contractSize(string symbol, double risk)
 {
//  double volume = Lot > 0.0 ? Lot : AccountInfoDouble(ACCOUNT_MARGIN_FREE)/10000,
  double volume = AccountInfoDouble(ACCOUNT_MARGIN_FREE)*risk/10000,
         v = volume,
         volumeStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP),
         minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN),
         maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
  v = round(volume/volumeStep)*volumeStep;
  return(fmin(maxLot, fmax(minLot, v)));
 }/******************************************************************/

そして、この関数は

double lot = contractSize(symbol[Number], Risk[Number]);
 
Alexey Viktorov #:

とてもシンプルです。まさか、今まで勉強してきたのに、こんなことで悩むとは......。

そして、その関数が呼び出される。

Alexeyさん、いつもありがとうございます!今夜、私のEAで使ってみようと思います。

私はどちらかというと配列の初心者で、それ故に難しいのです。今までは必要なかったのですが、近い将来、このギャップが大きくなることを実感しています。ドミトリー・フェドセーエフの論文を 勉強し始めたが、今のところはっきりしないことが多い。教材を吸収する時間が欲しい。

ウラジミールさん、ありがとうございます。

 
SanAlex #:

ここで、私がいじくりまわしていることがあります。

まずは要点を押さえた方がいいかもしれませんね。
 
SanAlex #:

何か - コードをあちこちで試しましたが、これがうまくいきそうです。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

そろそろ始まるかな~と思ったら、またまたぶつかりました。

サーシャさんは、フリーランスでこのようなオンデマンドのコードも書かれているのでしょうか?いつも思うのですが、2行以上、数千行のコードをどうやって書いているのですか?でも、だんだん分かってきました...私のコードとあなたのコードの行数を計算して...最大スプレッドもチェックして、ナンセンス...「分からない」オプションの方がずっと簡単です。

  MqlTick tick;
    if(!SymbolInfoTick(posSymbol, tick))
      return;
    if(tick.ask-tick.bid > inpSpred)
      return;

動作させたいが、書いたものを誰もが理解できるわけではない場合、次の3行で対応できます。

  MqlTick tick;
    if(!SymbolInfoTick(posSymbol, tick) || tick.ask-tick.bid > inpSpred)
      return;
 
SanAlex #:

このコードはターミナルから取得したものです

これからもよろしくお願いします。
 
SanAlex #:

私は自分でコードを書く方法を知りません。すべての関数をドキュメントから引用し、少しいじりながら、自分の目的に合うように修正しています。

\\\\\\\\\\\\\\\\\\\\

また、あなたのコードやコードベース内も見ています。私は学んでいるのです。私は理論家ではありません。

もう、掘るしかないのは明らかです。なぜここにコードを書いたのか?
 
SanAlex #:

ただ、ただ、あなたを楽しませるために。

他に誰に気の利いた質問をするんだ?

10年の刑期を与えられたのは、そのためだ。
 
SanAlex #:

フィンランド湾を出て、黒海へ。

私はカリーニングラードにいます。
 
SanAlex #:

フィンランド湾を出て、黒海へ。