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

 
evillive:

また、このサイクルはいつ終了すべきとお考えですか?

?

修正しました。

if(R==0)

{

 while(true)

 {

  Sleep(30000);

  Alert("Ошибка!");

  DeleteBuy=OrderDelete(OrderTicketBuy);

  DeleteSell=OrderDelete(OrderTicketSell);

  return(1);

 }

}

利益計算も。

while(true)ループの中にメッセージとエラー処理を 挿入しました。ループは動作し、メッセージは書き込まれ、エラーはありません。しかし、条件をクリアできず、データが更新されないようです。

ファイル:
test3_7.mq4  16 kb
 
CJIeCaPb:

while(true)ループにメッセージとエラー処理を挿入してみました。ループは動作し、メッセージは書き込まれ、エラーはありません。しかし、条件を満たせず、データは更新されません。

さらにヒントをご紹介します。

このサイクルでは、すべての注文を考慮するわけではありません。また、1種類の注文が複数あった場合(例えば、3つのbystop注文があった場合)、どうなるのでしょうか。

for(i=1;i<=OrdersTotal();i++)
{
 Alert(i);
 if(OrderSelect(i-1,SELECT_BY_POS)==true)
 {
  if(OrderSymbol()!=Symb)continue;
  if(OrderType()==OP_BUYSTOP)
  {
   OrderTicketBuy=OrderTicket();
   Alert("Buy");
   }
   if(OrderType()==OP_SELLSTOP)
   {
   OrderTicketSell=OrderTicket();
   Alert("Sell");
   }
  }
}


本当はその逆で、まずオーダーを選び、オーダーが選ばれて初めてそのタイプを確認し、いろいろと意味不明なことを言うべきなのだ。

while(OrderType()==OP_BUY)//Buy
{
 RefreshRates();
 
 SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);
 ...
}
 
//--------------------------------------------------------------------------
//Sell
while(OrderType()==OP_SELL)
{
 RefreshRates();
  
 SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET);
 ...
}
 


また、「sweep-switch-which-type-trait-stoploss」では、具体的になぜ?そして、このセリフは、1回と2回目の切り替えで、いつ実行されるのでしょうか?

    CloseBuy=OrderClose(OrderTicketBuy,Lote,Bid,1); continue;//119
-----
    CloseSell=OrderClose(OrderTicketSell,Lote,Ask,1); continue;//119
 
evillive:


本当は、まず注文を選択し、注文が選択されたら、その注文の種類を見て、いろいろと揶揄すべきなのですが、ここでは、まず注文の種類を考え、それから注文を選択しています。

ということで

if(R==1)//238

{

 Alert("yes");

 R=0;

 SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);

}


if(R==2)//245

{

 Alert("yes");

 R=0;

 SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET);

}

そして、"scroll-type-tralit-stoploss"( =D. 何が気に入らないのでしょうか? 普通だと思います、とても分かりやすいです。)では、なぜ正確にどこにでもあるのでしょうか?そして、このセリフは、1回と2回目の切り替えで、いつ実行されるのでしょうか?

そうすれば、条件によって壊れる。

 Timen=OrderCloseTime();

 if(Timen>0)

 {

  DeleteSell=OrderDelete(OrderTicketSell);

  OldProfit=0;

  WarBuy=true;

  break;

 }

そうですね、BreakはOrderCloseの文字列で見栄えが良くなりますね。次に、OrderDeleteを追加する必要があります。

evillive:

さらにヒントをご紹介します。

このループはすべての注文を考慮しているわけではありません。 また、ある種類の注文が1つよりも多い場合(例えば、3つのbystop注文が出された場合)、どうなるでしょうか。

OrdersTotalは1から、OrderSelectは 0から開始されます。

1つのシンボルに同じ種類の注文が複数ありますか?いいえ。でも、もう一回見てみようと思います。

これに近い条件、「もしMA==価格なら」が必要です。

これなら大丈夫。

if((MA>Open[0] && MA<Close[0]) || (MA<Open[0] && MA>Open[0]))

追伸:あけましておめでとうございます。

 
大晦日じゃない人もいるんだ。新年あけましておめでとうございます!!!
 

新年あけましておめでとうございます。

最近MQL 4の勉強を始めたので、質問させてください。

例えば、私は注文を開くための条件を持っています。

if (ビッド>=SS+5*ポイント)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,マジック,0,Green)を実行。

問題は、最初の注文で10ポイント以上の利益が出た場合、2番目の注文を開くにはどのような条件を指定しなければならないか、ということです。

 
lexdemon:

新年あけましておめでとうございます。

最近MQL 4の勉強を始めたので、質問させてください。

例えば、私は注文を開くための条件を持っています。

if (ビッド>=SS+5*ポイント)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,マジック,0,Green)を実行。

問題は、1つ目の注文で10ポイント以上の利益が出た場合、2つ目の注文を開くにはどのような条件を指定する必要があるかということです。

見てください、ほとんどのケースに対応する機能がたくさんあるんです。

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

 
lexdemon:

新年あけましておめでとうございます。

最近MQL 4の勉強を始めたので、質問させてください。

例えば、私は注文を開くための条件を持っています。

if (ビッド>=SS+5*ポイント)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,マジック,0,Green)を実行。

さて、質問ですが、1回目の注文で10ポイント以上の利益が出た場合、2回目の注文を開くにはどのような条件を指定しなければならないのでしょうか?

順番を事前に選択 する OrderSelect (Ticket_first_order, SELECT_BY_TICKET);

if(OrderOpenPrice()+10*Point==Ask)

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,マジック,0,Green)を実行。

 
CJIeCaPb

 Нужно условие максимально приближенное к этому: "если MA==цене, то".

Такое  пойдет:

if((MA>Open[0] && MA<Close[0]) || (MA<Open[0] && MA>Open[0]))


ほーら、うまくいったようです。各ループにreturnと "O "演算子を挿入し、無駄な演算を省くようにしました。

一つ問題なのは、注文がぎこちないこと。条件をどう組めばいいのかわからない。

ファイル:
test3.mq4  16 kb
 

問題は、1分足チャートで動作する取引ロボットを書いたことです。それは多くのチャートで履歴を分析し、履歴は約1ヶ月半で、それ以上与えられません。

1分足チャートで動作するトレーディングロボットを持って いるのですが、履歴を分析します。1時間足、日足、年足チャートでは履歴が表示されますが、多くのチャートでは1ヶ月半程度で、それ以上は表示されません。

どのように対処すればいいのでしょうか?


 
pycha:

私はforexstartというトレーダーを持っています、それが値を持っている場合。問題はトレーダーにある。私は1分チャートで動作するFXロボットを掲載しました。それは多くのチャートで履歴を分析し、履歴は約1ヶ月半のために存在しない、もうない。

1分足チャートで動くロボットなのですが、履歴が表示されます。1時間足、日足、年足では履歴が表示されますが、多くのチャートでは1ヶ月半程度でそれ以上は表示されません。また、ある日付まで戻ってから壊れるケース、上位チャートではすべて再表示されますが数ヶ月前にゲームが続いているケースもあります。

どうしたらいいのでしょうか?


サーバーDCから履歴の削除~ダウンロードを数回繰り返した後、切れ目が残っていれば、履歴を渡してくれるということです。Tickstory Liteでググって、ティック履歴 用のディスク容量を大量に用意し、この履歴をテスターに食わせれば、10年以上使えるM1が出来上がります。