[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 482 1...475476477478479480481482483484485486487488489...631 新しいコメント Mikhail Kozhemyako 2012.11.01 10:27 #4811 Dimka-novitsek:ありがとうございます!!!正規化を入れる...そして、クソワロタwwwwwwwwwwwwwwwwwwwwwwww頭に血が上っている。高校の幾何学より簡単そうだ。 ASKとBIDの正規化は必要なく、Sleep(Shh1sec-5secs)が必要です。 Dimka-novitsek 2012.11.01 10:28 #4812 了解!ここがポイント!整理すると...ご参加、ご協力ありがとうございました。自分でもよくわからないのですが、上のコードに注目してください。条件あり if (strela1<strela2&&SELL==0&&BUY!=0 ){ udalenie ();もし...もし...買い注文がなければ つまり、あるんです!ゼロではないのです。スクリーンショットでご覧いただけるように、コードはまだ動き始めたばかりで、買い注文はありませんいやー、ダメですねー。そして、その条件は満たされている、はずなのだが......!?これは、Expert Advisorsウィンドウのプリンターのメッセージから確認することができます。ちなみに、注文は条件を満たしたとき、つまりセットされたときに完璧にセットされていましたよ。条件を間違えていたことが判明?もちろん、コードの次の条件も発動した。 if (strela1<strela2&&BUY==0&&SELL==0){という、この状況下で発動すべきものだったのですどうしたんだ!!!?論理的条件の何が悪いんだ!?なんで2人同時に処刑されてるんだよww Dimka-novitsek 2012.11.01 11:13 #4813 見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。こんなのおかしいよ。if演算子の書き方がわからないのでしょうか!男、全コード。 //+------------------------------------------------------------------+ //| советник.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <WinUser32.mqh> extern double lot=1; extern int taymfreym=0 ; extern double stoplos=200 ; extern double takeprofit=500 ; extern double magicnumber=350 ; void BreakPoint(){//if (!IsVisualMode()) return(0); keybd_event(19,0,0,0); Sleep(10); keybd_event(19,0,2,0);} //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Print ( " НачалоНачал " ); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int i; int start() {Print ( " Начало " ); //---- for( int A=0; A<100 ; A++){ double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, A); double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, A); int BUY=0,SELL=0;int ticket; Print ( A, " strela1 " , strela1 , " strela2 " , strela2 ); for(int i=1; i<=OrdersTotal(); i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symbol( ) )continue; // Не наш фин. инструм if (OrderMagicNumber( ) !=magicnumber)continue; if (OrderType()==0){ BUY++; ticket=OrderTicket( );Print( "BUY++ " , BUY ," ticket ",ticket);} if (OrderType()==1) {SELL++;ticket=OrderTicket( );Print( "SELL++ " , SELL ," ticket ",ticket);} } } if (strela1<strela2&&SELL==0&&BUY!=0 ){ udalenie (); OrderSend(Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 3*Point, NormalizeDouble( Bid- (stoplos*Point),Digits), NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); Print( "strela1<strela2&&BUY==0&&SELL!=0 " , GetLastError()); } if (strela1>strela2){ udalenie (); OrderSend(Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, NormalizeDouble( Ask+ (stoplos*Point),Digits), NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1>strela2&&SELL==0&&BUY!=0 " , GetLastError()); } if (strela1<strela2&&BUY==0&&SELL==0){ OrderSend( Symbol( ), OP_BUY, lot, NormalizeDouble(Ask, Digits), 3*Point, NormalizeDouble( Bid- (stoplos*Point),Digits), NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); Print( "strela1>strela2&&BUY==0&&SELL==0 " , GetLastError() ," Ask ",Ask," stoplos= NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble( Bid- (stoplos*Point),Digits)," takeprofit= NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } if (strela1>strela2&&BUY==0&&SELL==0){ OrderSend( Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, NormalizeDouble( Ask+ (stoplos*Point),Digits), NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1>strela2&& OP_SELL " , GetLastError() ," Bid ",Bid," stoplos= NormalizeDouble( Ask- (stoplos*Point),Digits) ", NormalizeDouble( Ask- (stoplos*Point),Digits)," takeprofit= NormalizeDouble( Bid+( takeprofit*Point),Digits) ", NormalizeDouble(Ask+( takeprofit*Point),Digits)); Print( "strela1>strela2&& OP_SELL " , GetLastError() ," (stoplos*Point) ",(stoplos*Point)," Point ", Point," Digits ", Digits); } } Print ( " Конец " ); BreakPoint(); //---- return(0); } //+------------------------------------------------------------------+ void udalenie (){ int total = OrdersTotal(); for(i=total-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); int type = OrderType(); bool result = false; switch(type) { case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3*Point, CLR_NONE ); break; case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3*Point, CLR_NONE ); break; } if(!result) { int error = GetLastError(); string errorcomment = "Неудалось закрыть ордер №" + OrderTicket() + " " + Symbol() + " " + OrderType() + " " + error; Print(errorcomment); } } }説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数に個別のオープンオーダーが読み込まれます。そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。実は、プリントで見たものははっきりしているんです。 Михаил 2012.11.01 11:31 #4814 aedu: McTrader_"+Symbol()+"_command.dat "ファイル、EA用のコマンドを書いたスクリプトのような ものが必要だと思うのですが、どうでしょうか?それ自体で作るわけではありません。そのため、説明については開発元にお問い合わせください。 Михаил 2012.11.01 11:35 #4815 Dimka-novitsek:見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。こんなのおかしいよ。if演算子の書き方がわからないのでしょうか!男、全コード。 説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数で別途オープンオーダーを売る。そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。実は、プリントで見たものははっきりしているんです。 指標となるようなものを教えてください。までも Mikhail Kozhemyako 2012.11.01 12:15 #4816 大物ってなんだよ、なんであんなに興奮してるんだ? TarasBY 2012.11.01 12:31 #4817 Dimka-novitsek:見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。そんなバカな。if演算子の書き方がわからないのでしょうか!男、全コード。 説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数に個別のオープンオーダーが読み込まれます。そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。実は、プリントで見たものははっきりしているんです。論理的・技術的なミスが多い。注文を開けるロジックがトレースできない(想像力を働かせるしかない)。自分で勉強して、自分のずさんなコードを選んだり(それが「まっすぐになるまで」)、他の人のコードを勉強したりする必要があります。あなたのためにコードを書きました。- 役に立ちますか?追伸:先ほども言いましたが、テスターの場合は価格を正規化する必要はありません。しかし、取引注文の 実行時に「Wrong price」エラーが発生する原因の一つとして、Slippageが考えられます。3 * Point(intに変換した場合)=0.です。 ファイル: rcjipewc.mq4 6 kb Dimka-novitsek 2012.11.01 12:51 #4818 ありがとうございます!!!!!!! Михаил 2012.11.01 13:42 #4819 san44es:みなさん、ひとことお願いします。カスタム関数でバックグラウンドタイムフレームの5本目のバーのLow価格をカウントするものがありますが、特定のタイムフレームの価格をカウントさせるにはどうしたらよいでしょうか? iLow Dimka-novitsek 2012.11.01 14:03 #4820 ありがとうございました。コードがよりシンプルになりました。確かに、よりシンプルになりましたね。スリッパをありがとうございましたループ for (int A = 0; A <100 ; A++) // このバーの検索は必要ありません。EAが矢印のあるところやエラー番号のあるところに正確に注文を出したことをログから確認するのに役立つだけです。要はテスターで信号が出なかったということです。同じプリントで変数arrow1とarrow2が全てのバーで0にしかなっていないのを確認し、その状態から抜け出しました。 もちろん、このサイクルはどちらの方向にもカウントできる。しかし、またしてもいたるところでエラー129を目にすることになるのですチャート上にインジケーターの矢印が表示され、それによって注文が出されたことを確認したいのです。そこで、冒頭のスクリーンショットで変数矢印1and2が等しく、さらにゼロから17バーで、順序が設定されている - okey、スーパー!。そして、プリンターのメッセージで、ソレとソレのティックで売りがあり、さらにバーの矢印が等しくなっています - すばらしい!!!! 1...475476477478479480481482483484485486487488489...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます!!!正規化を入れる...そして、クソワロタwwwwwwwwwwwwwwwwwwwwwwww頭に血が上っている。高校の幾何学より簡単そうだ。
ASKとBIDの正規化は必要なく、Sleep(Shh1sec-5secs)が必要です。
了解!ここがポイント!整理すると...ご参加、ご協力ありがとうございました。自分でもよくわからないのですが、上のコードに注目してください。条件あり
もし...もし...買い注文がなければ つまり、あるんです!ゼロではないのです。スクリーンショットでご覧いただけるように、コードはまだ動き始めたばかりで、買い注文はありませんいやー、ダメですねー。そして、その条件は満たされている、はずなのだが......!?
これは、Expert Advisorsウィンドウのプリンターのメッセージから確認することができます。ちなみに、注文は条件を満たしたとき、つまりセットされたときに完璧にセットされていましたよ。
条件を間違えていたことが判明?
もちろん、コードの次の条件も発動した。
という、この状況下で発動すべきものだったのです
どうしたんだ!!!?
論理的条件の何が悪いんだ!?
なんで2人同時に処刑されてるんだよww
見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。こんなのおかしいよ。if演算子の書き方がわからないのでしょうか!
男、全コード。
説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数に個別のオープンオーダーが読み込まれます。
そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。
実は、プリントで見たものははっきりしているんです。
見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。こんなのおかしいよ。if演算子の書き方がわからないのでしょうか!
男、全コード。
説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数で別途オープンオーダーを売る。
そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。
実は、プリントで見たものははっきりしているんです。
指標となるようなものを教えてください。
までも
大物ってなんだよ、なんであんなに興奮してるんだ?
見ていて、わけがわからない...。一度に2つの条件を満たしたことになる!!!私はバカなのかもしれない...。しかし、私には理解できない。そんなバカな。if演算子の書き方がわからないのでしょうか!
男、全コード。
説明、ちょっとだけ...。私が考える標準的なオーダーピッキングです。BUY++、SELL++の変数に個別のオープンオーダーが読み込まれます。
そして、これらの変数は、論理的な条件に関与する。あとは、誰にもわからないが、重要性はないようだ。
実は、プリントで見たものははっきりしているんです。
論理的・技術的なミスが多い。注文を開けるロジックがトレースできない(想像力を働かせるしかない)。自分で勉強して、自分のずさんなコードを選んだり(それが「まっすぐになるまで」)、他の人のコードを勉強したりする必要があります。あなたのためにコードを書きました。- 役に立ちますか?
追伸:先ほども言いましたが、テスターの場合は価格を正規化する必要はありません。しかし、取引注文の 実行時に「Wrong price」エラーが発生する原因の一つとして、Slippageが考えられます。3 * Point(intに変換した場合)=0.です。
みなさん、ひとことお願いします。
カスタム関数でバックグラウンドタイムフレームの5本目のバーのLow価格をカウントするものがありますが、特定のタイムフレームの価格をカウントさせるにはどうしたらよいでしょうか?
ありがとうございました。コードがよりシンプルになりました。確かに、よりシンプルになりましたね。
スリッパをありがとうございました
ループ for (int A = 0; A <100 ; A++) // このバーの検索は必要ありません。EAが矢印のあるところやエラー番号のあるところに正確に注文を出したことをログから確認するのに役立つだけです。要はテスターで信号が出なかったということです。同じプリントで変数arrow1とarrow2が全てのバーで0にしかなっていないのを確認し、その状態から抜け出しました。
もちろん、このサイクルはどちらの方向にもカウントできる。しかし、またしてもいたるところでエラー129を目にすることになるのですチャート上にインジケーターの矢印が表示され、それによって注文が出されたことを確認したいのです。そこで、冒頭のスクリーンショットで変数矢印1and2が等しく、さらにゼロから17バーで、順序が設定されている - okey、スーパー!。そして、プリンターのメッセージで、ソレとソレのティックで売りがあり、さらにバーの矢印が等しくなっています - すばらしい!!!!