[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 476 1...469470471472473474475476477478479480481482483...631 新しいコメント Dimka-novitsek 2012.10.30 11:08 #4751 AA! 2012.10.30 14:07:08 2012.06.05 05:30 EA EURUSD,M30: dll call are not allowed; 'user32.dll'-'keybd_event' わかった気がする。DLLを解除するにはどうしたらいいですか? Dimka-novitsek 2012.10.30 11:13 #4752 いや、大丈夫そうだ!!! Dimka-novitsek 2012.10.30 11:25 #4753 テストではバッファは常に0です !!!もういいや、実戦で試してみよう!200本逆算して順張りのサイクルを書いて、エントリーポイントを探そう Dimka-novitsek 2012.10.30 12:12 #4754 すみません、ブラケットのバランスが悪いところを30分ほど探していたのですが、どういうことでしょうか?プリンターを入れてみると......。コンパイルできないのに、'wears '\end_of_program' - unbalanced left parenthesis C:\Alpariexperts╱customer.mq4 (94, 1) Dimka-novitsek 2012.10.30 12:20 #4755 ほら、ごめんね...。ブラケットを8回チェックし直しましたが、まあ、バランスは取れていますよ。バランスよく!それとも、そうなのか?//+------------------------------------------------------------------+ //| советник.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=20 ; extern double takeprofit=50 ; 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 ( " init " ); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ 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( );} if (OrderType()==1) {SELL++;ticket=OrderTicket( );} } } if (strela1>strela2&&BUY==0&&SELL==0) { OrderSend( Symbol( ), OP_BUY, lot, Ask, 3, 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, " NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble( Bid- (stoplos*Point),Digits)," NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } if (strela1<strela2&&BUY==0&&SELL==0){ OrderSend( Symbol( ), OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1<strela2&&BUY==0&&SELL== " , GetLastError() ," Bid ",Bid, " NormalizeDouble( Ask- (stoplos*Point),Digits) ", NormalizeDouble( Ask- (stoplos*Point),Digits), " NormalizeDouble( Bid+( takeprofit*Point),Digits) ", NormalizeDouble( Bid+( takeprofit*Point),Digits); } if (strela1>strela2&&BUY==0&&SELL!=0){ OrderSelect(ticket, SELECT_BY_TICKET); OrderClose( ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE); OrderSend(Symbol( ), OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits), NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); Print( "strela1>strela2&&BUY==0&&SELL!=0 " , GetLastError());BreakPoint(); } if (strela1<strela2&&SELL==0&&BUY!=0){ OrderSelect(ticket, SELECT_BY_TICKET); OrderClose( ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE); OrderSend(Symbol( ), OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1<strela2&&SELL==0&&BUY!=0 " , GetLastError());BreakPoint(); } } Print ( " Конец " ); //---- return(0); } //+------------------------------------------------------------------+ Михаил 2012.10.30 12:26 #4756 Dimka-novitsek: すみません、バランスが悪いブラケットを30分ほど探してしまいました。プリントを入れるだけで、ほら...。コンパイルできないのに、'wears '\end_of_program' - unbalanced left parenthesis C:\Alpariexperts╱customer.mq4 (94, 1) 一見したところ、最後の中括弧(main()の場合)が抜けています。あなたのコードの最後は、分岐した if (strela1<strela2&&BUY==0&&SELL==0){ OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; Print( "strela1<strela2&&BUY==0&&SELL== " , GetLastError());BreakPoint(); }ps これは上記のコードに対するものです。 Dimka-novitsek 2012.10.30 12:29 #4757 ありがとうございます!!!コードを見てみないと...。ブラケットも1つ1つ紙に書いて数えてみたんですが、バランスがいい!!!! Dimka-novitsek 2012.10.30 12:32 #4758 分岐はどこ?それとも私がバカなのか...。というか、この条件でオーダーを開けるだけなんです 削除済み 2012.10.30 12:32 #4759 drknn:...真相の究明が複雑ですね。きっと、問題そのものを国民に定式化すれば、もっとシンプルな解決方法を教えてくれるはずです。追伸 なぜなら、その解決策を見つけるためには、大量のガラクタをリサイクルし、ふるいにかけなければならないからです。だから、自由に形にしてください。シンプルな解決策は、即効性のある解決策を意味するものではありません。もしかしたら、ここの人たちはあなたの人生を1日以上救ってくれるかもしれません。 オッケーです。私は問題の要点をお伝えしようと思います。もしかしたら、誰かがヒントをくれたり、簡単に解決できるように助けてくれるかもしれません。1分足チャートで作業します。29/10/12 00:00のチャートの1分足(高値+安値/2-バーの平均値)を取り、これをスタート地点とする。 そして、この価格から10ピップ上方への乖離を確認します(1回の正しい乖離は+1)。スタート地点からの乖離が10ポイントに達すると、+1カウンターになり、さらに乖離をチェックし始めますが、10ポイントに達した地点から、次の10ポイントの値上がりを待ちます。例えば、次のようになる。(開始点) + 10 pips <= 価格 (開始点から続くすべてのバーの価格を使用します。) カウンター = カウンター +1; を取得し、開始点はすでにこの点 -(開始点 + 10 pips) から開始されます。(開始点+10pips)+10pips <= 価格 (基準点から続く全てのバーの価格が使用される)の場合、counter=Counter+1; となり、この点から開始 します -(開始点+10pips)+10pips.(スタートポイント+10pips+10pips)+10pips<=価格(基準点からその後の全てのバーの価格を使用します。)の場合、カウンター=カウンター+1となり、この点からスタートします-(スタートポイント+10pips+ 10pips)+10pips.などなど...。カウンタが10になるまで(counter == 10)。 そして、新しく形成された1分足のバー(high+low/2 - バーの平均値)ごとに、この条件をチェックし、 カウンターが10に 達するまで待ちます(カウンター== 10)。仮に2日経過して、新しいバーができるたびに、条件が合っているかどうかをチェックしてシフトしていった・・・・・。そして、counter =10になったとき - "Counter == 10 "というメッセージを出力するのです。最初のユーザー定義ポイントから2日先に開始ポイントを移動させる。つまり、2012年10月29日00:00から2012年10月31日00:00に移動させ、このサイクルを繰り返す。このサイクルを繰り返すことで、スケジュールを進めていきます。つまり、新しく形成されたバーを取り、(高値+低値/2 - バーの平均値)を描画する必要があります。そして、その状態を確認し、正しければ上記のようにシフトします。配列で実装しようとしたのですが、非常にわかりにくく、間違った値を与えてしまいます。このアルゴリズムを実装する方法を教えてください。 PapaYozh 2012.10.30 12:33 #4760 Dimka-novitsek: ほら、ごめんね...。ブラケットを8回チェックし直しましたが、まあ、バランスは取れていますよ。バランスよく!それとも、そうなのか? このコードでは Print( "strela1>strela2&&BUY==0&&SELL==0 " , GetLastError() ," Ask ",Ask, " NormalizeDouble( Bid- (stoplos*Point),Digits) ", NormalizeDouble( Bid- (stoplos*Point),Digits)," NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); } は反転したカンマ(行末のカンマ)を移動させます。 1...469470471472473474475476477478479480481482483...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
すみません、バランスが悪いブラケットを30分ほど探してしまいました。プリントを入れるだけで、ほら...。コンパイルできないのに、'wears '\end_of_program' - unbalanced left parenthesis C:\Alpariexperts╱customer.mq4 (94, 1)
一見したところ、最後の中括弧(main()の場合)が抜けています。
あなたのコードの最後は、分岐した
ps これは上記のコードに対するものです。
...
真相の究明が複雑ですね。きっと、問題そのものを国民に定式化すれば、もっとシンプルな解決方法を教えてくれるはずです。
追伸
なぜなら、その解決策を見つけるためには、大量のガラクタをリサイクルし、ふるいにかけなければならないからです。だから、自由に形にしてください。シンプルな解決策は、即効性のある解決策を意味するものではありません。もしかしたら、ここの人たちはあなたの人生を1日以上救ってくれるかもしれません。
オッケーです。私は問題の要点をお伝えしようと思います。もしかしたら、誰かがヒントをくれたり、簡単に解決できるように助けてくれるかもしれません。
1分足チャートで作業します。29/10/12 00:00のチャートの1分足(高値+安値/2-バーの平均値)を取り、これをスタート地点とする。
そして、この価格から10ピップ上方への乖離を確認します(1回の正しい乖離は+1)。
スタート地点からの乖離が10ポイントに達すると、+1カウンターになり、さらに乖離をチェックし始めますが、10ポイントに達した地点から、次の10ポイントの値上がりを待ちます。
例えば、次のようになる。
(開始点) + 10 pips <= 価格 (開始点から続くすべてのバーの価格を使用します。) カウンター = カウンター +1; を取得し、開始点はすでにこの点 -(開始点 + 10 pips) から開始されます。
(開始点+10pips)+10pips <= 価格 (基準点から続く全てのバーの価格が使用される)の場合、counter=Counter+1; となり、この点から開始 します -(開始点+10pips)+10pips.
(スタートポイント+10pips+10pips)+10pips<=価格(基準点からその後の全てのバーの価格を使用します。)の場合、カウンター=カウンター+1となり、この点からスタートします-(スタートポイント+10pips+ 10pips)+10pips.
などなど...。
カウンタが10になるまで(counter == 10)。
そして、新しく形成された1分足のバー(high+low/2 - バーの平均値)ごとに、この条件をチェックし、 カウンターが10に 達するまで待ちます(カウンター== 10)。仮に2日経過して、新しいバーができるたびに、条件が合っているかどうかをチェックしてシフトしていった・・・・・。
そして、counter =10になったとき - "Counter == 10 "というメッセージを出力するのです。最初のユーザー定義ポイントから2日先に開始ポイントを移動させる。つまり、2012年10月29日00:00から2012年10月31日00:00に移動させ、このサイクルを繰り返す。
このサイクルを繰り返すことで、スケジュールを進めていきます。
つまり、新しく形成されたバーを取り、(高値+低値/2 - バーの平均値)を描画する必要があります。そして、その状態を確認し、正しければ上記のようにシフトします。
配列で実装しようとしたのですが、非常にわかりにくく、間違った値を与えてしまいます。このアルゴリズムを実装する方法を教えてください。
ほら、ごめんね...。ブラケットを8回チェックし直しましたが、まあ、バランスは取れていますよ。バランスよく!それとも、そうなのか?
このコードでは
は反転したカンマ(行末のカンマ)を移動させます。