[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 673

 
artmedia70:
I.e. init()でインジケータウィンドウに情報を表示する呼び出しを追加する必要がありますか? 。


init()で書いてみる

int init()
{
Alert("I can't find your box, I'm out of here, though I was called in the init() section");
return(0);
}.

 
IgorM:


では、init()に書いてみてください。

int init()
{
Alert("あなたの箱が見つかりません。init() 部で呼び出されましたが、ここから出ます。");
return(0)です。
}

:)盗作していませんか?:)
 

この問題を解決するのを手伝ってください負けトレードがあれば、ロットを変更する必要がありますが、そうでなければ - いいえ。そうしています......。

//====================================================
// Расчет размера позиции
//====================================================
double CalculateLots(){
   double Res=dLots;
   bool bProfit=true;
   int PrevTime=-1;
   double tmpLots;
   for (int i=0;i<OrdersHistoryTotal();i++){
      if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
      if (OrderSymbol()!=Symbol())                    continue;
      if (OrderMagicNumber()!=MAGIC)                  continue;
      if (OrderCloseTime()<PrevTime)                  continue;
      PrevTime=OrderCloseTime();
      if (OrderProfit()>0) bProfit=true; else bProfit=false;
      tmpLots=OrderLots();
   }
   double Lots_Step=MarketInfo(Symbol(), MODE_LOTSTEP);
   if (!bProfit) Res=tmpLots+Lots_Step;
   return(Res);
}

変えようと思えばロットを変えなければならないのですが、変えられないのです。ロットを変更したときに、すでに保留中の注文があることです(他のロットで)。これらの注文を削除し、ロット数を変更する必要があります(新しいものに)、しかし、パラメータは同じままです!私は、これらの注文を削除し、それらのロット数を変更する必要があります。


 


プログラマーの皆様へ。
以下の質問にお答えください。

文字列からのデータが配列に正しく入力されないのですが、その理由を教えてください。

extern string Sessions_begin="15:31;14:11";
extern string Sessions_end="22:32;18:12"; 

int mas_time_begin[10][2], mas_time_end[10][2];  //первый - № сессии,
            // второй время[][1]-первый элемень время(часы), [][2]-минуты.

//
str_len_begin=StringLen(Sessions_begin)

Print("Длина str_len_begin="+str_len_begin);
  for (n=1,i=0; i<=str_len_begin; i+=6,n++)
  {
   mas_time_begin[n][1]=StrToInteger(StringSubstr(Sessions_begin,i,2));
   mas_time_begin[n][2]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
   mas_time_end[n][1]=StrToInteger(StringSubstr(Sessions_end,i,2));
   mas_time_end[n][2]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
  Print("n= "+n);
  Print("i= "+i);

  Print("Начало сессии "+n+" в(вывод через Print) "+StringSubstr(Sessions_begin,i,2)+":"+StringSubstr(Sessions_begin,i+3,2)); 
  Print("Конец сессии "+n+" в (вывод через Print) "+StringSubstr(Sessions_end,i,2)+":"+StringSubstr(Sessions_end,i+3,2));
  Print("Начало сессии "+n+" в(вывод через Массив) "+mas_time_begin[n][1]+":"+mas_time_begin[n][2]);
  Print("Конец сессии "+n+" в(вывод через Массив) "+mas_time_end[n][1]+":"+mas_time_end[n][2]);
  }

今、私が持っているのはこんな感じです。

http://savepic.ru/1410881.gif

 

Господа, не подскажете ли? Есть проблема в сортировке ордеров при включении или (наложении) отремонтированного советника на имеющиеся уже, выставленные отложки. Я тут пытался соорудить коды для поиска, распознавания и переприсвоения имеющихся номеров ордеров, чтоб советник воспринимал их как свои, но результат какой-то неопределённый. Советник при включении начинает лупить некоторые отложки в тоже место с теми же параметрами.....Может у кого есть коды или мысли по этой теме, для многих ордеров?

回答してくださった方々、ありがとうございました。

 
Hedin:


プログラマーの皆様へ 以下の質問にお答えください


文字列のデータが配列に正しく入力 されない理由を教えてください。

これが今の私です。

http://savepic.ru/1410881.gif

2次元目の配列サイズが正しく設定 されていない。

int mas_time_begin[10][2], mas_time_end[10][2];  //первый - № сессии,

配列の要素は0から始まり、あなたはこれらのエントリにいます。

mas_time_begin[n][2]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
mas_time_end[n][2]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
は、2 次元目が 2 で設定されているが、セル 3 (0, 1, 2) にデータを書きたい(インデックス 0, 1 のみ使用可能)。

解決策:配列を2次元に拡大する。

int mas_time_begin[10][3], mas_time_end[10][3];  //первый - № сессии,

または,値を書き込む際にインデックスを書き換える。

mas_time_begin[n][0]=StrToInteger(StringSubstr(Sessions_begin,i,2));
mas_time_begin[n][1]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
mas_time_end[n][0]=StrToInteger(StringSubstr(Sessions_end,i,2));
mas_time_end[n][1]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
 
rosomah:

皆さん、アドバイスをお願いします。既に発注済みの保留注文に修復済みEAを有効化または(スーパーインポーズ)すると、注文がソートされる問題があります。利用可能な注文番号を検索して、EAが自分のものとして認識するように再割り当てするコードを作ってみたのですが、結果は不定です。これを有効にすると、EAは同じ場所で同じパラメータでいくつかの保留中の注文を置くようになります......-誰かこのトピックで多くの注文のためのコードまたは提案をお持ちですか? ご感想をありがとうございました。



EAがどのように "owl - alien "を定義するかによりますが、もしマジックナンバーで定義しているなら、このパラメータはすでに発注された注文に対して変更できないので、すでに発注済みの注文に対しては何もすることができません。もし、チケットを、仮に
グローバル 変数に格納するのであれば、それはもう簡単で、すでに存在するチケットを「ベースに追加」することができるのです。これが現段階での一番の疑問点ですね。どのように判断するのですか?
 
ToLik_SRGV:

EAが "owl - alien "をどのように定義しているかによります。もし、マジックナンバーで設定されている場合、このパラメータはすでに発注された注文に対して変更できないため、すでに発注された保留中の注文には関係ありません。

はい、そして、異なる保留中の注文のグリッドがある場合、いくつかの保留中の注文がトリガーされ、いくつかは移動したなどの理由で穴が形成されています。これらは、認識され、番号が変更され、「新しい」Expert Advisorによって埋められる必要があります。もちろん、手動で行うことも可能ですがでは、なぜわざわざMTSを使うのですか?一回の注文で、少なくともN.モルジョフから入手することができます。

int poiskです。

if(poisk==0)

{ int k;

for(k=0; k<OrderTotal();k++)

{ if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==false)break;

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic)cjntinue。

ticket_buy1=OrderTicket()。

poisk=1; }}

が、一連の注文をどう処理するか?

 
mql5のチュートリアルはいつ出る予定なのか、誰か知っていますか?
 
Abzasc:
mql5のチュートリアルはいつ出る予定なのか、誰か知っていますか?

https://www.mql5.com/ru/forum/491