どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 400

 
khorosh:


Yuriさん、ありがとうございます。
分解して仕事の原理を理解する必要があるので、私は、あなたのコードを使用しようとしますが、後で、。
上記のステップは難しくありませんが、その後、私は氏 "N "の各カスタム関数を分解する必要があり、これは複雑さの最高度を持って、それぞれ、3から10時間(彼らが言うように: - 1日。)

自分のコードを確定させる、それは「自分の生息地」であって、勉強することは何もないのです。

Yuriさん、いつもありがとうございます。




ボリルナド
1 「彼は何もできない!2 - 書き込まれたいだけ!?3 「説明するのは無駄!4 「論理が全くない!5 「無類の負けず嫌い

1 「比較的、そうですね。
2 - 状況を理解するのに役立った。
3 - 全く使えないわけではありません。
4 - 回答した事実のため - はい。
5 - 5つのBで学期を終え、その他の成績はすべてA。

あなたは私と同じようにフォーラムのルールを破りました。
今、あなたのアカウントは警告に値し、私のアカウントはBANに値します。

非合理的な行動(批判への対応)はご容赦ください。
 
Link_x:

Yuriさん、ありがとうございます。
分解して動作原理を理解する必要があるので、あなたのコードを使用してみますが、後ほど。
上記のステップは難しくありませんが、その後、私は氏 "N "の各カスタム関数を分解する必要があり、これは複雑さの最高度を持って、それぞれ、3から10時間(彼らが言うように: - 1日)、多くの時間を取るでしょう。

自分のコードを確定する、それは「自分の生息地」であり、そこに勉強することは何もない。

Yuriさん、いつもありがとうございます。






そもそも、すべての関数のコードに入り込む必要はないのです。関数で使用されるパラメータとその目的、用途を理解すれば十分です。実際に私自身が各機能の内部まで踏み込んだわけではありません。何らかの形で変えなければならない時だけ、掘り下げていきました。つまり、携帯電話やパソコン、テレビを、その正確な仕組みや機能を知らなくても、うまく使いこなしているのです。この場合、これらの機能をどのように使うかが大きなポイントになります。ここでは 、すべての機能とその働きについて説明します。使い方は、機能ごとに行われるテストから学ぶことができます。この道を歩めば、より早くプログラマーになれるでしょう。しかし、自分の自転車を再発明するのは、長くて非生産的な道です。専門家を作るというのは、あなたの言い分では、建材がない状態で家を建てるようなものです。すべて自分で発明しなければならないのです。積み木(機能)があれば、家を建てるのはずっと早い。
 

こんにちは。

AccountEquity()関数が端末に要求するのか、ブローカーに要求するのか教えてください。

この質問は、ティック ごとにこの関数を呼び出すとブローカーを刺激し(特に複数のチャートで同時にEAを実行する場合)、結果として口座をブロックする可能性があるという仮定から導かれたものです。

 
yan720:

こんにちは。

AccountEquity()関数は、端末とブローカーのどちらにリクエストを出すのか、教えてください。

この質問は、ティックごとにこの関数を呼び出すとブローカーを刺激し(特に複数のチャートで同時にEAを実行する場合)、結果としてアカウントをブロックする可能性があるという想定から生じています。


もちろんブローカーにはイエスです)))

端末は気にしない...。最後に判明したデータをお渡しします...

 
vadynik:
問題は、Magicを 関数に渡すか どうかです。

これは、ウィザードが何のためにあるのかを知れば理解できることです。EAが自身の注文を他のEAの注文や手動で開いた注文と区別できるようにするために必要なものです。複数の買い逆指値注文があり、その中に異なるマジコンやマニュアル注文(マジコンなし)がある場合、マジコンが機能上必要です。一般に、関数のパラメータとしてマジックを設定した方が、関数の普遍化が図れる。例えば、デフォルトでは-1に設定されているはずです。

double BuystopPrice(int Magic = -1)
{
double Price=0;
  for (int i=OrdersTotal()-1; i>=0; i--) 
     {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
          if(OrderMagicNumber()==Magic && OrderType()==OP_BUYSTOP)
          {
           Price = OrderOpenPrice();
          break;
          }
        }
     }
    return(Price);
}

実は、この関数のコードは、ループの中で最初の買い逆指値注文の設定価格を決めているだけなので、ループ自体は原理的に必要ないのです。

 
khorosh:
そもそも、各機能のコードに踏み込む必要はないのです。関数で使用されるパラメータとその目的、用途を理解すれば十分です。実際に私自身が各機能の内部まで踏み込んだわけではありません。何らかの形で変えなければならない時だけ、掘り下げていきました。皆さんは、携帯電話やパソコン、テレビを、その正確な仕組みや機能を知らなくても、うまく使いこなしていると思います。この場合、これらの機能をどのように使うかが大きなポイントになります。ここでは 、すべての機能とその働きについて説明します。使い方は、機能ごとに行われるテストから学ぶことができます。この道を歩めば、より早くプログラマーになれるでしょう。しかし、自分の自転車を再発明するのは、長くて非生産的な道です。専門家を作るというのは、あなたの言い分では、建材がない状態で家を建てるようなものです。すべて自分で発明しなければならないのです。積み木(機能)があれば、家を建てるのはずっと早い。


あなたは賢者であり、必要であれば説明し、考えを変えることができる人です。:)
とはいえ、改めてお礼を申し上げます。

その場合、真核細胞のオルガノイドから家を建てるのは任せて、普通の建材で建てることになります。
 

2つの関数に誤りがないかを確認してください。

最初の本質:価格が正しい方向にポイント(TP-ポイント)の特定の番号を通過した場合、注文のグリッド(マージンで開いている)を閉じた後、ドローダウンを終了するために必要なロットを計算する必要があります。

2番目の本質:それは、古いものから順に、グリッドの注文の半分を閉じる必要があります。

double FindRightLot (int otype) // функция поиска лота, необходимого для выхода из просадки после 
                               //закрытия сетки ордеров
{
  double Lot=0; double TotalLot=0;
  for (int i = OrdersTotal()-1; i>0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         {
           Lot = NormalizeDouble ((OrderOpenPrice()-Bid)*OrderLots()/TP,2); 
           if (Lot>0)
           {
              TotalLot= NormalizeDouble (TotalLot+Lot,2);
           }
         }
           
       
         else if (otype == OP_SELL)
         {
           Lot = NormalizeDouble ((Ask-OrderOpenPrice())*OrderLots()/TP,2);
           if (Lot>0)
           {
            TotalLot= NormalizeDouble (TotalLot+Lot,2);
           }
           
         }
       }
     }
   }
   return (TotalLot);
   
 }
//+------------------------------------------------------------------+

void CloseHalfOrders (int otype)// ф-ция закрытия половины ордеров сетки
{
  int count = 0;
  for (int i = 0; i<= OrdersTotal(); i++)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         { 
           if (count<CountTrades(OP_BUY)/2 && CountTrades(OP_BUY)>3 )
           
             OrderClose(OrderTicket(),OrderLots(),Bid,0,Black);
             count++;
           
         }
       
       
         else if (otype == OP_SELL)
         {
           if (count<CountTrades(OP_SELL)/2 && CountTrades(OP_SELL)>3)
           
           OrderClose(OrderTicket(),OrderLots(),Ask,0,Black);
           count++;
           
         }
       }
     }
   }
   
 }
 
みんな、それはダメだよ...そのままMQL5に行けるけど、そこでPOSITIONが全部開いちゃうんだよ...。
 
yan720:


AccountEquity()は端末とブローカーのどちらを照会するのか、教えてください。

端末へ
 
vadynik:


正確には、グローバル変数に設定されたマジックを関数が見るかどうかということです。

それとも関数に渡すべきなのでしょうか?

グローバル 変数にある場合は、はい、そうなります。しかし、この関数は汎用性があり、複数のウィザードで動作する必要があります。そのためには、関数のパラメータとして渡すのがよいでしょう。