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

 
Artyom Trishkin:

できます。でも、気をつけてください。オープンポジションの 場合は、終値が返されます。対応:買い:Bid、売り:Ask

o. そんな使い方があるんですね。

OrderClosePrice()はクローズポジションからしか取れないと思っていました。

ヘルプには何も書いてありません)
 
igrok333:
o.そんな使い方があるなんて知りませんでした。

OrderClosePrice()はクローズした取引からしか取得できないのでは?

ヘルプには何も書いてありません)

非文献的な機能。しかし、いくつかの慣例があります。今、どの作品か覚えていないんです。Alexey@Alexey Viktorov に聞いてみてください。彼は最近これについて書きました。

 
Artyom Trishkin:

非正規の可能性しかし、そこにはある種の慣習がある。今、どの作品か思い出せません。Alexey@Alexey Viktorov に聞いてみてください - 彼は最近これについて書きました。

このコードはどうでしょう?

すぐにゼロで変数が開始されるのでは?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for (int i=OrdersTotal()-1; i>=0; i--)       
   {                                        
   if(OrderSelect(i,SELECT_BY_POS)==true)
      {   
         if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );                              
         if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
         
         if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
         if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
       }
    }
  } 
 
igrok333:
このコードはどうでしょう?

変数がすぐにゼロで初期化されない?

デフォルトに頼らないでください。ローカル変数を 宣言するときは、その値を気にしたほうがよい。

もちろん一般的には、そこに設定する必要はない。関数が何を返すかを確認すれば十分である。

if(!OrderClose()の場合)Print("Bummer")。

 

以前のローソク足のフィボナッチファン価格を知るにはどうしたらよいですか?MQL5
ObjectGetValueByTime( )が動作せず、0、高値、低値のローソク足が返って くる。

 

アルチョム・トリシキン

こんにちは。私のインジケーターはどうなっているのか、教えてください。なぜ何も描画しないのか、全く理解できない。

https://www.mql5.com/ru/forum/224805#comment_6372281

ファイル:
indicator.ZIP  21 kb
probability.zip  50 kb
 
Artyom Trishkin:

これは文書化されていない機能です。しかし、いくつかの慣例があります。今、どの作品か覚えていないんです。アレクセイ@Alexey Viktorovに 聞く必要があります - 彼は最近それらについて書きました。

ずいぶん前のことですが...。が、それでも何とか見つけることができた。レナートは、なぜそれが望ましくないのかをわかりやすく説明しています。しかし、私見では、それほど悪くはないと思います。オーダークローズ時にリクオートを受けると問題が発生する場合があります。リクエストでAskやBidの価格を設定すれば、いつでも価格を更新して再挑戦することができます。また、終値OrderClosePrice()を指定した場合、注文データを更新するために、何度も注文を選択する必要があります。

結論:できないけど、本当に必要ならできる。

Применение функция OrderClosePrice() к открытым ордерам
Применение функция OrderClosePrice() к открытым ордерам
  • 2006.09.11
  • www.mql5.com
Вопрос к разработчикам: Корректно ли использование данной конструкции: OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,CLR_NONE) Проверка...
 

アドバイスお願いしますCSVファイルからデータを読み込むと、価格のカラムにプレースセパレータ "." が付いているものがあります。(1.22426) をFileReadString(handle) で、次に StrToDouble 関数で、すべてOKです。しかし、価格の列もあるのですが、すでに「,」で区切られていて(1,22426)、StrToDoubleでは読み込めません。CSV本体でカンマをドットに変更することができない場合はどうすればよいのでしょうか?

 
WinProject:

アドバイスお願いしますCSVファイルからデータを読み込むと、価格のカラムにプレースセパレータ "." が付いているものがあります。(1.22426) を FileReadString(handle) で、次に StrToDouble 関数で、すべてOKです。しかし、すでに", "で区切られた価格を持つ列(1,22426)があり、StrToDoubleはそれを読み取ることができません。CSVでカンマをドットに変更できない場合、どうすればよいですか?


ファイル読み込み文字列


をクリックすると、カンマからドットに変更することができます。


文字列の置き換え

文字列の中で見つかったすべての部分文字列を、与えられた文字列 で置き換えます。

intStringReplace()
string&str,置換が実行される // パターン
const stringfind,// シークした部分文字列
const string replacement// 置換される部分文字列
);

 
Vladislav Andruschenko:

ファイル読み込み文字列


をクリックすると、コンマからフルストップに変更できます。


文字列の置き換え

文字列の中で見つかったすべての部分文字列を、与えられた文字 列で置き換えます。

intStringReplace()
string&str,// 置換される文字列
const stringfind,// 探索した部分文字列
const string replacement// 置換される部分文字列
);


ありがとうございました!)変数 Cena=FileReadString(handle); 関数 Separator=StringReplace(Sepa,",",".") に挿入すると、エラー "implicit conversion from number to string" - が出力されます。

はセパレータ "," (1,22426) を含む値を文字列として読みたくないので、StringReplace は機能しない。それとも私のやり方が悪いのでしょうか?