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

 

こんにちは。
OrderSelect関数は エラー0(ERR_NO_ERROR - 取引が正常に行われた)を返しますか?
このエラーを回避するにはどうしたらよいですか?
プログラムコードと仕訳を添付します。
謹んで申し上げます。シュルキン。

//+------------------------------------------------------------------+
//|                                                    PoligonTd.mq4 |
//|                                           17 сентября 2013 года. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "17 сентября 2013 года."
#property link      ""

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----Функция OrderSelect--------------------------------------------+
string Str="#20552937 buy 1.00 GBPUSD at 1.55450";//Строка
int Tct=StrToDouble(StringSubstr(Str,1,9));//Номер ордера
   if(OrderSelect(Tct,SELECT_BY_TICKET)==true)//Выбор ордера по номеру
string OdSmb=OrderSymbol();//Символ ордера
   else Print("OrderSelect() вернул ошибку - ",GetLastError());
Print("Кс:"," Str=",Str,"; Tct ",Tct,"; OdSmb ",OdSmb,"?");//Кс
//----
   return(0);
  }
//+------------------------------------------------------------------+

2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: removed
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: uninit reason 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: Ks: Str=#20552937 buy 1.00 GBPUSD at 1.55450;Tct 20552937;OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: OrderSelect() returned error - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: ロードに成功しました。

 
Shurkin:

こんにちは。
OrderSelect関数はエラー0(ERR_NO_ERROR - 取引が正常に行われた)を返しますか?
このエラーを回避するにはどうしたらよいですか?
プログラムコードと仕訳を添付します。
リーズナブル。シュルキン

2013.09.17 13:07:04 PoligonTd GBPUSD,Daily:削除しました。
2013.09.17 13:07:04 PoligonTd GBPUSD,日足: Uninit reason 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: Kc: Str=#20552937 buy 1.00 GBPUSD at 1.55450; Tct 20552937; OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: OrderSelect() returned error - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily: 正常にロードされました。

実際には、選択エラーはなく、そのようなチケットの注文は存在しない。
 
Sepulca:
実際には、選択ミスはなく、そのようなチケットの注文は存在しません。 。

まあ...このチケットで注文がない場合、OrderSelect() はfalseを返します。

で、elseに移行しているので、エラーが出ているようです。問題は、なぜエラーが発生しないのか?

 

どうすれば最小限の労力でロジックを実装できるのかがわからない。

If(...)ストップオーダーを設定する。

If(注文の有効期限>時間)で注文を取り消し,if(...)で新しい注文を設定する。

難しいのは、すでに空いているポジションが いくつかある可能性があり、それらすべてをどう戦うかです。一番簡単な方法は何ですか?

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

 

特別なinit()関数は捨てようと思っています。これが正しい解決策ではないでしょうか

私の見方はこうです。

1.グローバルに変数を宣言する、例えばこんな感じです。

gInitTrue = false;

そして、独自のINITを作成します。

bool myInit()
{
  // Инициализируем..
  // неоходимые..
  // нам..
  // переменные..
  return(true);
}

このようにスタートの一番最初に。

if (gInitTrue == false)
    myInit();
この方法が適切かどうか、また私が提案するこの問題の解決方法が正しいかどうか、より経験豊かな方々のご意見を伺えれば幸いです。
削除済み  
Sepulca:

バッファを増やす。

おっと、エラーが出てしまいました。また、2色のバッファー用に、2色を追加する必要がありました。
 
hoz:

特別なinit()関数は捨てようと思っています。これが正しい解決策ではないでしょうか

私の見方はこうです。

1.グローバルに変数を宣言する、例えばこんな感じです。

そして、独自のINITを作成します。

このようにスタートの一番最初に。

この方法が適切かどうか、また私が提案するこの問題の解決方法が正しいかどうか、より経験豊かな方々のご意見を伺えれば幸いです。

新しいソリューションを感じる斬新さとは?:-))

1つだけそのような方法は必要なかった。

 
artmedia70:

まあ...このチケットで注文がない場合、OrderSelect()はfalseを返します。

で、elseに移行しているので、エラーが出ているようです。問題は、なぜゼロなのか?



確認しました。チケット番号が一致すれば、すべて正常に動作します。

そうでない場合 - 関数はFalseを返しますが、OrderSelect()ZEROと何も起こらないので沈黙して います。

 
Zhunko:

新しいソリューションを感じる斬新さとは?:-))

1つだけそのような方法は必要なかった。



さらに言えば?INITは、例えば切断などの場合に失敗することがあると議論されています。なぜなら、不測の事態に備え、データ自体を後から再初期化することはなく、実行は一度だけだからですしたがって、本当は正しい選択ではないのです。
 

問いは鈍いが、答えはどこにもない、いや、見間違えただけか。

関数では、あるいはどこかで、データ型の 後に& 記号があり、私の記憶違いでなければ、一度だけ&&が あるのを見たことがあります。

func(int& mm_mode, string symbol, int magic,bool& stop) {。

何のために使うのか、何をするのか。(参考までに、詳しく調べてみてください)))