[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 301 1...294295296297298299300301302303304305306307308...652 新しいコメント costy_ 2011.10.28 16:23 #3001 rustein: フォーラムを検索しましたが、クイックフィックスが見つからず、テスターでは動作しないが、実生活では動作するという問題を解決するのに役立っています。ありがとうございます。 テスターがハングアップするのであれば、そのはずです。(ループからの出口を必ず記述してください)。 このように while(Result == -1) { if(TotalOpenOrders() < TotalOrders) { if(TrendDetection() == BULL) { Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); if((IsTesting()||IsOptimization())&&Result == -1)break; } Warstein 2011.10.28 16:24 #3002 drknn: あなたの問題が何であるかは、何とも言えません。MQL4では、コード中の負の数は必ず括弧で囲むことをルールとしています。括弧がなくてもエラーが発生することがあります。 ただし、extern で始まるコード行では、負の値を括弧で囲む必要はない。なぜそうなのかはわかりません。 ありがとうございます、しかし、それは動作しません、ループを取り除くための構成を提案することができます if(IsTesting()==true || IsOptimization()==true) costy_ 2011.10.28 16:26 #3003 rustein: ありがとうございます、しかし、それは動作しません、あなたはループを取り除くために構成を提案することができます if(IsTesting()==true || IsOptimization()==true) while(Result == -1) { if(TotalOpenOrders() < TotalOrders) { if(TrendDetection() == BULL) { Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); if((IsTesting()||IsOptimization())&&Result == -1)break; } ^^ 削除済み 2011.10.28 16:28 #3004 drknn: 私の理解では、コードのどこかでファイルがすでに開かれているが閉じられていないのだろうと思います。そのためか、ファイルを再度開くことができず、警告ウィンドウが出続けています。でも、私はテレパスのメンバーではないので、間違っているかもしれませんね...。 ある瞬間にエキスパートがcsvファイルを見て、そこにどんなコマンドがあるか(買い、売り、閉じ)を確認し、このコマンドがEXCELによってファイルに書き込まれる、という状況です。問題は、現時点では、エキスパートがファイルを読み込むと、EXCELで開くことができ、ekspertはエラーを出して終わりです。 while constructは知りませんでした...。 私の書き方が正しいかどうか、ご確認ください。 int init() { while(handle<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t') } } costy_ 2011.10.28 16:31 #3005 sanches83: } ええ、なぜ聞くのですか、「戦い」でテストできるじゃないですか)。 Владимир Тезис 2011.10.28 16:32 #3006 rustein: ありがとうございます、しかし、それは動作しません、あなたはループを取り除くために構成を提案することができます if(IsTesting()==true || IsOptimization()==true) ループを一切使わず、こんな感じで試してみてください。 double PR,SL,TP; PR=NormalizeDouble(Ask,Digits); SL=NormalizeDouble(PR-StopLoss*Point,Digits); TP=NormalizeDouble(PR+TakeProfit*Point,Digits); int Result=0; Result = OrderSend(Symbol(),OP_BUY,Lots,PR,Slippage,SL,TP,OrderComments,Magic,0,CLR_NONE); if(Result<=0){ Print("Ошибка № ",GetLastError()," при открытии бай-ордера. PR = ",PR," SL = ",SL," TP = ",TP); } 少なくとも、なぜポーズが開かないのかがわかると思います。 Warstein 2011.10.28 16:36 #3007 costy_: ^^ Many Thanks :) 皆さん、ありがとうございます!修正しました、うまくいきました。 ご協力ありがとうございました。 Владимир Тезис 2011.10.28 16:39 #3008 costy_: そう、なぜ聞く必要があるかというと、「戦う」ことで確認できるのです )) 。 一般にこれは正しいのですが、これを動作させるためには、ループの前に変数を初期化する必要があります。 handle=0 です。 while(ハンドル<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t').FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t'); } まあ、コード実行がループの本体に入り、それを無視しないことを絶対に確認するためなんだけど。 costy_ 2011.10.28 16:44 #3009 drknn: 実際にはその通りなのですが、ループの前に変数が初期化されている必要があります。 handle=0 です。 while(ハンドル<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t').FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t'); } これは、コードの実行がループ本体に入り、それを無視しないようにするためです。 ええ、残念ながら私は占い師のようになる必要があり、問題のコードの一部を持つスクリプトを作成し、よくまたはすべてのコードとあなたがエラーを指摘するために容易になります。 コーヒーかすzakAchyVeTso)。 削除済み 2011.10.28 16:53 #3010 皆さん、ちょっと助けてください!!! モーニングチャネル戦略を使ったEAを書こうとして います。本質はこうだ:EURGBPペアで6時01分に我々は0時から午前6時までの値動きのチャンネルを決定します。2つの保留注文を設定し、トリガーされた保留注文がストッパーで閉じられたら、反対方向の注文をオープンするのです。うまくいかないのは、戦略の2番目の部分です。すなわち、ストップが発動した場合、逆方向の注文を出すことはできません。 ファイル: kupffqkvgsg.mq4 4 kb 1...294295296297298299300301302303304305306307308...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます。
テスターがハングアップするのであれば、そのはずです。(ループからの出口を必ず記述してください)。
このように
あなたの問題が何であるかは、何とも言えません。MQL4では、コード中の負の数は必ず括弧で囲むことをルールとしています。括弧がなくてもエラーが発生することがあります。
ただし、extern で始まるコード行では、負の値を括弧で囲む必要はない。なぜそうなのかはわかりません。
ありがとうございます、しかし、それは動作しません、あなたはループを取り除くために構成を提案することができます if(IsTesting()==true || IsOptimization()==true)
^^
私の理解では、コードのどこかでファイルがすでに開かれているが閉じられていないのだろうと思います。そのためか、ファイルを再度開くことができず、警告ウィンドウが出続けています。でも、私はテレパスのメンバーではないので、間違っているかもしれませんね...。
while constructは知りませんでした...。
int init()
{
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')
}
}
}
ありがとうございます、しかし、それは動作しません、あなたはループを取り除くために構成を提案することができます if(IsTesting()==true || IsOptimization()==true)
ループを一切使わず、こんな感じで試してみてください。
少なくとも、なぜポーズが開かないのかがわかると思います。
^^
Many Thanks :)
皆さん、ありがとうございます!修正しました、うまくいきました。
ご協力ありがとうございました。
そう、なぜ聞く必要があるかというと、「戦う」ことで確認できるのです )) 。
一般にこれは正しいのですが、これを動作させるためには、ループの前に変数を初期化する必要があります。
handle=0 です。
while(ハンドル<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t').FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
}
まあ、コード実行がループの本体に入り、それを無視しないことを絶対に確認するためなんだけど。
実際にはその通りなのですが、ループの前に変数が初期化されている必要があります。
handle=0 です。
while(ハンドル<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t').FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
}
これは、コードの実行がループ本体に入り、それを無視しないようにするためです。
皆さん、ちょっと助けてください!!!
モーニングチャネル戦略を使ったEAを書こうとして います。本質はこうだ:EURGBPペアで6時01分に我々は0時から午前6時までの値動きのチャンネルを決定します。2つの保留注文を設定し、トリガーされた保留注文がストッパーで閉じられたら、反対方向の注文をオープンするのです。うまくいかないのは、戦略の2番目の部分です。すなわち、ストップが発動した場合、逆方向の注文を出すことはできません。