[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 47 1...404142434445464748495051525354...652 新しいコメント Дмитрий 2011.08.04 09:48 #461 PapaYozh: いいえ、そんなことはありません。さらに悪くなった :) RefreshRates()は、あらかじめ定義された AskとBidの変数の値を更新するので、一度Price変数に格納された値を使用していることを理解してください。 了解しました :-)Priceは、この関数内の実行がOrderSendに達したときのみアクセスされると思っていました。 int OpenPosition(string AdvisorName,int Position,int Magic,double Lots,double StopLoss){ int N; int Сount = 5; int Slippage = (CalculateSpread() * 2); double Price; string PeriodString = GetPeriod(Period()); if(Position == OP_BUY){ string OrderName = StringConcatenate(AdvisorName," - Покупка по рынку"); string ErrorName = "Ошибка открытия ордера на покупку"; string CriticalErrorName = "Невозможно открыть ордер на покупку"; string MailCriticalErrorName = "Ошибка открытия"; color Arrow = Gold;} if(Position == OP_SELL){ OrderName = StringConcatenate(AdvisorName," - Продажа по рынку"); ErrorName = "Ошибка открытия ордера на продажу"; CriticalErrorName = "Невозможно открыть ордер на продажу"; MailCriticalErrorName = "Ошибка открытия"; Arrow = YellowGreen;} while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000; Print("Торговый поток занят. Повторная проверка через "+DoubleToStr((Interval/1000),0)+" сек"); Sleep(Interval);} while(N < Сount){ if(Position == OP_BUY){RefreshRates(); Price = NormalizeDouble(Ask,Digits);} if(Position == OP_SELL){RefreshRates(); Price = NormalizeDouble(Bid,Digits);} int Ticket = OrderSend(Symbol(),Position,Lots,Price,Slippage,StopLoss,0,OrderName,Magic,0,Arrow); if(Ticket > 0){if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)){int Flag = 1; PlaySound("recharge.wav"); break;}} else{Flag = 0; int PRM = GetLastError(); string ERR = Error(PRM,"OrderSend()"); ErrorProcessing(AdvisorName+" "+PeriodString,ErrorName+" "+PRM+" ("+ Error(PRM,"OrderSend()")+")","","OrderSend()"); N++; Sleep(5000);} if(N == Сount){ErrorProcessing(AdvisorName+" "+PeriodString,CriticalErrorName, MailCriticalErrorName+" "+PRM+" ("+Error(PRM,"OrderSend()")+")","OrderSend()");}} return(Flag);} 今が正念場のようですね)) PapaYozh 2011.08.04 10:33 #462 Dimoncheg: 了解です:-)Priceは、この関数内の実行がOrderSendに達したときのみアクセスされると思っていました。 今が正念場って感じですね(^^))) そうだと思います。 削除済み 2011.08.04 11:03 #463 int BlackOrWhite(int countbar) { int result_=0; if (iClose(NULL,0,countbar)-iOpen(NULL,0,countbar)) result_=1; else result_=-1; if (iOpen(NULL,0,countbar)==iClose(NULL,0,countbar)) result_=0; return(result_); }関数が、なぜか1つの値しか与えない + コンパイラが悪態をつく :'iClose' - 期待される比較表現何が問題なのか理解できない。if(BlackOrWhite(1)>0) { ということで、番組内で使ってください。 Victor Nikolaev 2011.08.04 11:11 #464 nuan: 関数を呼び出すと、何らかの理由で値が1つしか与えられず、コンパイラは顔をしかめる。 'iClose' - 期待される比較表現 何が問題なのか理解できない。 私のアプリケーションでは、このように使っています。 if (iClose(NULL,0,countbar)-iOpen(NULL,0,countbar)>0) result_=1; else result_=-1; あるいは、次のようになります。 if (iClose(NULL,0,countbar)>iOpen(NULL,0,countbar)) result_=1; else result_=-1; Дмитрий 2011.08.04 11:11 #465 PapaYozh: そうだと思います。 すべてうまくいっているようです、ありがとうございます。 削除済み 2011.08.04 11:13 #466 ありがとうございました。 削除済み 2011.08.04 12:35 #467 こんにちは。助けてほしいんです。問題はこれだ。 注文が発生したら、どのような方法であれ、他のすべての注文を閉じる必要があります。そしてまた、新しいものが開かれるはずの条件によって。 Роман 2011.08.04 12:43 #468 sergey_r: こんにちは。助けてほしいんです。問題はこれだ。 注文が発生した後は、他のすべての注文を終了させる必要があります。そしてまた、新しいものを開くことが条件となる。 この 時点で教科書は読んでいるのか? 削除済み 2011.08.04 12:51 #469 これまで使ってきたのは static bool order_opened = false; if(order_opened){return(0);}。 OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); Alert (GetLastError()); // 注文発注時のエラー 表示 order_opened = true; // 注文が成功したら再度オープンしないようにすること。 さて、注文がうまくいった後に、新たに注文を出すことになりました。 Роман 2011.08.04 13:25 #470 sergey_r:これまで使ってきたのは static bool order_opened = false; if(order_opened){return(0);}。OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); Alert (GetLastError()); // 注文発注のエラーメッセージ order_opened = true; // もし注文が成功したら再度オープンしないようにすること。あとは、注文がうまくいった後に、新しい注文を出すだけです。 チュートリアルとドキュメントを読み、ポーズ条件によって開く、閉じるのロジックを変更し、CTRL+ALT+Mでコードを挿入 します。 1...404142434445464748495051525354...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
いいえ、そんなことはありません。さらに悪くなった :)
RefreshRates()は、あらかじめ定義された AskとBidの変数の値を更新するので、一度Price変数に格納された値を使用していることを理解してください。
今が正念場のようですね))了解しました :-)Priceは、この関数内の実行がOrderSendに達したときのみアクセスされると思っていました。
今が正念場って感じですね(^^)))了解です:-)Priceは、この関数内の実行がOrderSendに達したときのみアクセスされると思っていました。
そうだと思います。
関数が、なぜか1つの値しか与えない + コンパイラが悪態をつく :
'iClose' - 期待される比較表現
何が問題なのか理解できない。
ということで、番組内で使ってください。関数を呼び出すと、何らかの理由で値が1つしか与えられず、コンパイラは顔をしかめる。
'iClose' - 期待される比較表現
何が問題なのか理解できない。
私のアプリケーションでは、このように使っています。あるいは、次のようになります。
そうだと思います。
すべてうまくいっているようです、ありがとうございます。
こんにちは。助けてほしいんです。問題はこれだ。
注文が発生したら、どのような方法であれ、他のすべての注文を閉じる必要があります。そしてまた、新しいものが開かれるはずの条件によって。
こんにちは。助けてほしいんです。問題はこれだ。
注文が発生した後は、他のすべての注文を終了させる必要があります。そしてまた、新しいものを開くことが条件となる。
この 時点で教科書は読んでいるのか?
これまで使ってきたのは
static bool order_opened = false;
if(order_opened){return(0);}。
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue);
Alert (GetLastError()); // 注文発注時のエラー 表示
order_opened = true; // 注文が成功したら再度オープンしないようにすること。
さて、注文がうまくいった後に、新たに注文を出すことになりました。
これまで使ってきたのは
static bool order_opened = false;
if(order_opened){return(0);}。
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue);
Alert (GetLastError()); // 注文発注のエラーメッセージ
order_opened = true; // もし注文が成功したら再度オープンしないようにすること。
あとは、注文がうまくいった後に、新しい注文を出すだけです。
チュートリアルとドキュメントを読み、ポーズ条件によって開く、閉じるのロジックを変更し、CTRL+ALT+Mでコードを挿入 します。