[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 96

 

私は何かを見逃しているに違いない。

extern double LotsStep = 0.1;
       double Lots;
...

int start()
{
   ...
   
   if (NewOrder)
   { 
      if (OrdersTotal() == 0)
         Lots = LotsStep;
      else
         Lots += LotsStep;
      
      Lots = TrueLots(Lots);
      if (Lots < 0)
      {
         Alert("Не хватает денег на ", DoubleToStr(-Lots, 2), " лотов!");
         Lots = 0;
         Buy  = False;
         Sell = False;
      }
      
      NewOrder = False;
   }
      
   //Блок открытия на бай
   
   ...
}

double TrueLots(double Lots)
{
   double Free    = AccountFreeMargin();
   double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   
   if (Lots > Max_Lot)
   {
      Alert("...");
      Lots = Max_Lot;
   }

   if (Lots*One_Lot > Free)
      return(-Lots);
   
   return(Lots);
}

 

もう一つ問題があって、「('関数 定義が予期しない」というエラーが発生しました。この関数を「double LotSize()
」と置きました。私
は、オープンする後続のロットを増やしたい のですが、一連の買いのシグナルがあるときだけオープンし、反対のシグナルが来たら、カウンターをゼロにして新しいピラミッドを構築し始めたいのです、それが可能であれば、それがこのステップに責任があると思ったので、このコードの断片を取ったわけですが、そうなりませんでした。..

 
MaxZ:

私は何かを見逃しているに違いない。


ありがとうございます。
 
SeALALex:
これでよしとする。


予告編を見て-自分で訂正してください。

ファイル:
b-lots.mqh  3 kb
 
SeALALex:

ありがとうございます、これから試してみます。

また、指定された数のLotを開くことができるようにチェックを入れています。即興で、運が良くなる!:))


ロジックは以下の通りです。

マーケットに注文がない場合(ここでは保留中の注文を 除く)、Lots変数に初期値を代入します(この場合、very step)。

もしマーケットにすでに注文がある場合は、オープニングのたびにLotsパラメータがLotsStepの値だけ増加します。

あなたの具体的なタスクがわからないから、「即興で」と書いたのです。


ローマン:


予告編を見て-自分で訂正してください。

自分の手ですべてをマスターすると同時に、コードの書き方も学べますよ。:D

 
MaxZ:

私は何かを見逃しているに違いない。


マキシム、もし時間があれば、 この トピックを見てみてください...。:-)))

すべてのEAに一度に「共通項」(普遍的な選択肢)が思いつかない......。:-(((

私のEAのコードには、"dabble "オーバーフローについて書かれています...。

そのスレッドでスクリーンショットを交えて詳しく質問させていただきます.

P.S. フクロウのバージョンによっては、うまく動作するものもあれば、そうでないものもあります...今は掛け算も含めて全部本でやっているだけですが...。彼の製品も、ユニバーサルなアプローチのためには、掛け算に分解する必要があります。TWRの変数に推奨されているように配列を作ったのですが、今のところ全てのEAでうまくいっていません、一部のEAではデータ型「double」のまま履歴上の1000個までのトレードでオーバーフローしてしまいます...最終的な最適fを計算 する際にです。

 
MaxZ:

私は何かを見逃しているに違いない。


すみません、いつも捕まらないんです。


NewOrder error -'NewOrder' - variable not defined, where do I name it first?

 
Roman.:


マキシム、もし時間があれば、 この トピックを見てみてください...。:-)))

ProCapitalフォーラムのスレッドで何を見ればいいんだ?:))


ローマン:


すべてのEAに一度に「共通項」を出す(ユニバーサルな選択肢)ことはできない...。:-(((

Expert Advisorsのコードに、"dabble "オーバーフローについて書いてあるのですが・・・。

そのスレッドでスクリーンショットを交えて詳しく質問させていただきます.

P.S. フクロウのバージョンによっては、うまく動作するものもあれば、そうでないものもあります...今は掛け算も含めて全部本でやっているだけですが...その製品も、ユニバーサルアプローチのために掛け算に分解する必要があります。TWRの変数にお勧めの配列を作りましたが、今のところ全てのEAでうまくいっていません、一部のEAでは履歴の1000単位までの取引で「double」データ型で溢れたままです・・・トータルで最適なfを計算 するときに。

プロキャピタルの支店で?なぜそこで?投稿してください、スクリーンショットを見ます、考えます。
 
MaxZ:

ProCapitalフォーラムのスレッドで何を見ればいいんだ?:))


プロキャピタルの支店に?なぜそこで?投稿してください、スクリーンショットを見ます、考えます。


すみません、バッファの中に間違ったリンクがありました - 古いものです...:-)))

これです。

今、私は仕事中です。スクリーンショットを含む詳細な質問を、今夜か明日、同じスレッドに投稿します。:-)))

 
SeALALex:

すみません、いつもその場でキャッチできないんです。


NewOrder error -'NewOrder' - variable not defined, where do I call it first?

経験には経験が伴う!;)


NewOrder は bool 型変数である。例えば、Start()関数の冒頭で宣言する必要があります。すべてはコードの構造に依存します。

注文を出すときは、変数NewOrderをTrueに設定します。

例えば、私たちのEAは、始値と移動平均インジケータで 動作します。

if ((Close[2] <= MA2 && Close[1] > MA1) || (Close[2] < MA2 && Close[1] >= MA1))
{
   NewOrder = True;
   Buy = True;
}