MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 40

 
trader781:

修正

それ以外の場所に置くと、間違ったパラメータに なります。

直近のものを考慮する必要があります。

変えてみる。

標準のOrderModify()を使ってみたが、多くの注文を同時に、かつ、常に動かすと禁止される

講評をありがとうございました。

論証なしに宣言する、そんなに難しいことですか?

int Counts()
{код функции}

そして、空のものも呼んで、エルザを中括弧の後ろに出してください。

if(Counts()==0){че там нужно когда нет ордеров}
else {когда есть ордера}

そして今、これがあるんですね。

if(Counts()==0){че там нужно когда else {когда есть ордера} нет ордеров}
 
Alekseu Fedotov:

使ってみてください ^_~。



うまくいっていない......まだ取引は成立していない。
 
Movlat Baghiyev:
うまくいかない・・・取引もできない・・・。

少なくとも保留中の注文は出してくれるのか、いや、エラーは何なのか。

...直しました。

ファイル:
0.mq4  8 kb
 
引数終了。端末が固まる。
ファイル:
count.mq4  19 kb
 
trader781:
引数が終了し、端末がハングアップする。

つまり、ある種のループが延々と空回りしているわけです。

コードの最初に#property strictと書いて修正、警告がたくさん出る。

最後の関数で0による除算が可能である。

それ以外の場合は、最初の行だけが実行され、中括弧のブロックは取り残されます。

一般的には、まず紙に文字で論理を書き出す、そうしないとグラグラする。

 
Vitalie Postolache:


チャート上の小数に応じて、浮動小数点付きのコマンドを実行することになっている

NormalizeDouble(Ask+TakeProfit*Point(),Digits)です。

と、実行されない行があることをどのように確認したのでしょうか?

 
trader781:

チャート上の小数に応じて、浮動小数点付きのコマンドを実行することになっている

NormalizeDouble(Ask+TakeProfit*Point(),Digits)です。

実行されない行があることをどうやって知るのですか?

そう、私は論理に大きな問題を抱えているのです。また、その結果を整数型変数に書き込んだ場合、何が残るのでしょうか?このコードに何の意味があるのでしょうか?

int lastlot,tp;
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);

ここで、コードの一部がオーファンであり、条件に関係なく実行されることを理解するのは、それほど難しいことでしょうか?

else//+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
 
Vitalie Postolache:

ああ、論理に大きな問題がある。そして、その結果を整数型変数に書き込むと何が残るのでしょうか?このコードに何の意味があるのでしょうか?

int lastlot,tp;
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);

コードの一部がオーファンになって実行されないというのは、そんなに理解しがたいことなのでしょうか?

else//+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}

停止

注文があれば

注文の種類

{

の場合、その注文の種類に応じたオペレーションが実行されます。

}

ではない?

ゼロディバイドの由来がわからない
 
trader781:

停止

注文があれば

オーダータイプ

{

の場合、このオーダータイプに対するオペレーションが実行されます。

}

ん?

はい、その通りです。ただ、コードがこのようなスタイルで書かれているため、前の発言者が誤解してしまったのです。

追記:ゼロ除算は ゼロによる除算で、ログに何行目か表示されます

 
trader781:

停止

注文があれば

オーダータイプ

{

の場合、このオーダータイプに対するオペレーションが実行されます。

}

ん?

上記を修正しました。elseの後に来るものは条件によって実行されます。中括弧のブロックは独立しているので、elseとは関係ない。

ゼロディバイドがどこから出てくるのかがわからない。

そこで

void ModifyOrders() //+------------модификация ввод тип
  {
   double avg_price; //+------------средняя цена
   price=0;//+------------цена
   bool z;//+------------выход в переменную
   double orderlots=0; //+------------лоты

   avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот
Vitaly Muzichenko ここでいう「誤解」はどこにあるのでしょうか。頭を使う。