[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 141 1...134135136137138139140141142143144145146147148...432 新しいコメント begemot7 2013.02.07 07:31 #1401 artmedia70:IMHO - 注文を見つけ、それがマーケットにあるかクローズしたか、そしてどのようにクローズしたか、テイク、ストップ、マニュアルで確認するのがよいでしょう。ここから、いろいろな方向に踊り出すことができます。 そうすれば、すべてが正確になります。しかし、グローバル変数は失われてしまうことも...。 変数をなくすとはどういう意味ですか? EAがこれもチェックするように見つけるということですか? Artyom Trishkin 2013.02.07 07:44 #1402 Begemot7: 変数を失うとはどういう意味ですか? EAがそれをチェックするように、それも見つけるという意味ですか? 。 リアルとデモのすべてのEAで、注文とポジションに関する重要なデータを変数に保存していません。EAのロジックに必要なデータは、注文コメントに書くのが限界です。ポジションの有無、数、注文の有無、クローズしたポジション、クローズ方法を調べる必要があるときは、マーケットのポジションや注文、ヒストリカルデータをループさせて、必要な注文を探し、必要な情報を取得することにしています。したがって、予期せぬコンピュータのシャットダウン時に失われる可能性があるため、重要な情報はすべて変数に保存しないようにしています。後からいつでも取り出せる。端末のグローバル変数 に保存しようとしたのですが、コンピュータがクラッシュ/ハングアップしたときに、情報が常にそこに保存されるわけではないことが判明しました。それに、常に新鮮な情報を書き込むことを監督するのは、私にとっては面倒なことです...。必要なものを必要な時に探しやすいと思います。 Александр 2013.02.07 07:51 #1403 PapaYozh: インジケータをドロップしたポイントの座標は、関数を使って取得できます。 WindowXOnDropped() WindowYOnDropped() 価格と時間 WindowPriceOnDropped() WindowTimeOnDropped() 組み込んでみます。例としては、以下のようなものです。 削除済み 2013.02.07 08:44 #1404 私は奇妙な状況に直面しています。教えてください...自作EAは3つあります。戦略は同じで、楽器によって実装が異なるだけです。ペア:EURUSD、EURGBP、USDJPY。前の2つとはうまくいっているのですが、最後の1つはうまくいっていません。ブローカーはFX-Trendです。私の口座は最小ロット0.01のミニ口座です(これまでテストに使用していました)。同時に:デモ口座ではすべてOKです。テスターで実行すると、テスターの同じリアル口座で トレードが開始されます。しかし、実際の取引時にはそうではない。注文開始のチャートマーカー(および他のすべてのマーカー)が正常に配置される。過去ログにはまったく何もない。すべてVPSで動いています。これだけの情報だと思います。どの方向に掘ればいいのか、ヒントがあればありがたいです。 Александр 2013.02.07 09:50 #1405 Sepulca:このような方が良い(EAを再起動した場合に備えて)。 注文が1つだけなら、なくても大丈夫です。if(OrdersTotal()<1)){}...... Mikhail Kozhemyako 2013.02.07 10:05 #1406 artmedia70: 私はリアルとデモのすべてのEAで、注文やポジションに関する重要なデータを変数に保存していません。EAロジックに必要なデータは、注文コメントで書くのが限界です。ポジションの有無、数、注文の有無、クローズしたポジション、クローズ方法を調べる必要があるときは、マーケットのポジションや注文、ヒストリカルデータをループさせて、必要な注文を探し、必要な情報を取得することにしています。この方法では、予期せぬコンピュータのシャットダウン時に失われる可能性があるため、重要な情報をすべて変数に保存しないようにしています。後からいつでも取り出せる。端末のグローバル変数に保存しようとしたのですが、コンピュータがクラッシュ/ハングアップしたときに、情報が常にそこに保存されるわけではないことが判明しました。それに、常に新鮮な情報を書き込むことを監督するのは、私にとっては面倒なことです...。必要なものを必要な時に探しやすいと思います。 そうなんです...。...さらに安心できるように。もちろん、すべてのオーダーに目を通す方が正しいのですが。しかし、これは具体的なケースです。GlobalVariablesを失ったのであれば、この証券会社から離れるべきだ。GlobalVariablesは、お客様のパソコンではなく、証券会社でそのままにしておくと最大3ヶ月間保存されます。それとも私が間違っているのでしょうか? 削除済み 2013.02.07 10:42 #1407 自分でも分かったような気がします :).その通りです。要は、それを形にすることです。一般に、市場で執行する 場合、ストップとテイクポジションをゼロに設定します。そして、それをきちんとセットする。もしかしたら、誰かが役に立つかもしれない...。 begemot7 2013.02.07 11:20 #1408 Sepulca: そうなんです...。安心感を与える。もちろん、正しいのは、すべての注文に目を通すことです。しかし、これは具体的なケースです。そして、GlobalVariablesがなくなれば、この証券会社から離れるべきでしょう。 どういうことですか~この証券会社はわざとやっているのですか?MT4はブローカーに簡単に操作される端末なので、不正が多いのではと言われたのですが、聞いたことのある方はいらっしゃいますか? Mikhail Kozhemyako 2013.02.07 11:36 #1409 Begemot7: つまり、DCはわざとやっているのでしょうか?MT4はブローカーに簡単にコントロールされるターミナルで、それ故に多くの不正行為が可能だと聞いたのですが、どなたかご存知でしょうか? 。 よくわからないんです。DCがグローバル変数を破壊するのは、もちろん、X......束を構築していない限り、何の意味があるのでしょう。ドキュメントから引用します。「クライアントターミナルのグローバル変数とMQL4プログラムのグローバルスコープで宣言された変数を混在させないでください。 グローバル変数は最後のアクセスから4週間はクライアントターミナルに存在しますが、その後は自動的に削除されます。グローバル変数へのアクセスは、新しい値を設定するだけでなく、グローバル変数の値を 読み出すこともできます。クライアントターミナルのグローバル変数は、クライアントターミナルで起動したすべてのMQL4プログラムから同時にアクセスすることができます。0.01や0.1のロットで仕事をしていても、誰も虐げたりしない、些細なことだから...」と。しかし、リアル口座で100ロット開設した場合、資金を奪い合う覚悟が必要だ。 削除済み 2013.02.07 12:05 #1410 プロに助けてほしい!!!すでにこのコードで頭を悩ませています...。4つのバッファがあり、そのうち2つは正しく動作しますが(Buffer &buffer2)、残りの2つは正しく動作しません。ある条件が発生するとバッファが満たされ、この値が1つ上、2つ下となるとバッファは削除(ゼロ化)されますが、残りの2つのバッファはチャートにぶら下がったままとなります。修正方法を教えてください。 //--- Функция расчета буферов CountZZ(BuferUp,BuferDn,iPeriod,Dev,Step); int CountZZ( double& ExtMapBuffer[], double& ExtMapBuffer1[], double& ExtMapBuffer2[], double& ExtMapBuffer3[], int ExtDepth, int ExtDeviation, int ExtBackstep ) { int shift, back,lasthighpos,lastlowpos; double val,res; double curlow,curhigh,lasthigh,lastlow,lastlow1,lasthigh1; int count = iBars(pair,tf)-ExtDepth; for(shift=count; shift>=0; shift--) { //--- Расчитываем буфер BuferUp val = iLow(pair,tf,iLowest(pair,tf,MODE_LOW,ExtDepth,shift)); if(val==lastlow) val=0.0; else { lastlow=val; if((iLow(pair,tf,shift)-val)>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer[shift+back]; if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; } } } ExtMapBuffer[shift]=val; //-------------------------------------------------------------------- //--- Расчитываем буфер BuferUp2 if (ExtMapBuffer[shift]>0.0) { if(use.narrow.bands) val = MathMin(iClose(pair,tf,shift),iOpen(pair,tf,shift)); else {val = MathMax(iClose(pair,tf,shift),iOpen(pair,tf,shift)); val = MathMin(val,MathMin(iHigh(pair,tf,shift+1),iHigh(pair,tf,shift-1)));} if(ExtMapBuffer[shift+back]==0.0) ExtMapBuffer1[shift+back]=0.0; } ExtMapBuffer1[shift]=val; //-------------------------------------------------------------------- //--- Расчитываем буфер BuferDn val=iHigh(pair,tf,iHighest(pair,tf,MODE_HIGH,ExtDepth,shift)); if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-iHigh(pair,tf,shift))>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtMapBuffer2[shift+back]; if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; } } } ExtMapBuffer2[shift]=val; //------------------------------------------------------------------- //--- Расчитываем буфер BuferDn2 if (ExtMapBuffer2[shift]>0.0) { if(use.narrow.bands) val = MathMax(iClose(pair,tf,shift),iOpen(pair,tf,shift)); else {val = MathMin(iClose(pair,tf,shift),iOpen(pair,tf,shift)); val = MathMax(val,MathMax(iLow(pair,tf,shift-1),iLow(pair,tf,shift+1)));} if(ExtMapBuffer2[shift+back]==0.0) ExtMapBuffer3[shift+back]=0.0; } ExtMapBuffer3[shift]=val; //------------------------------------------------------------------- } // Отсееваем ненужные значения lasthigh=-1; lasthighpos=-1; lastlow=-1; lastlowpos=-1; for(shift=count; shift>=0; shift--) { curlow=ExtMapBuffer[shift]; curhigh=ExtMapBuffer2[shift]; if((curlow==0)&&(curhigh==0)) continue; //--- if(curhigh!=0) { if(lasthigh>0) { if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0; else ExtMapBuffer2[shift]=0; } //--- if(lasthigh<curhigh || lasthigh<0) { lasthigh=curhigh; lasthighpos=shift; } lastlow=-1; } //---- if(curlow!=0) { if(lastlow>0) { if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0; else ExtMapBuffer[shift]=0; } //--- if((curlow<lastlow)||(lastlow<0)) { lastlow=curlow; lastlowpos=shift; } lasthigh=-1; } } for(shift=iBars(pair,tf)-1; shift>=0; shift--) { if(shift>=count) ExtMapBuffer[shift]=0.0; else { res=ExtMapBuffer2[shift]; if(res!=0.0) ExtMapBuffer2[shift]=res; } } } 1...134135136137138139140141142143144145146147148...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
IMHO - 注文を見つけ、それがマーケットにあるかクローズしたか、そしてどのようにクローズしたか、テイク、ストップ、マニュアルで確認するのがよいでしょう。ここから、いろいろな方向に踊り出すことができます。
そうすれば、すべてが正確になります。しかし、グローバル変数は失われてしまうことも...。
変数を失うとはどういう意味ですか? EAがそれをチェックするように、それも見つけるという意味ですか? 。
インジケータをドロップしたポイントの座標は、関数を使って取得できます。
WindowXOnDropped()
WindowYOnDropped()
価格と時間
WindowPriceOnDropped()
WindowTimeOnDropped()
組み込んでみます。例としては、以下のようなものです。
私は奇妙な状況に直面しています。教えてください...
自作EAは3つあります。戦略は同じで、楽器によって実装が異なるだけです。ペア:EURUSD、EURGBP、USDJPY。前の2つとはうまくいっているのですが、最後の1つはうまくいっていません。ブローカーはFX-Trendです。私の口座は最小ロット0.01のミニ口座です(これまでテストに使用していました)。
同時に:デモ口座ではすべてOKです。テスターで実行すると、テスターの同じリアル口座で トレードが開始されます。しかし、実際の取引時にはそうではない。注文開始のチャートマーカー(および他のすべてのマーカー)が正常に配置される。過去ログにはまったく何もない。
すべてVPSで動いています。
これだけの情報だと思います。どの方向に掘ればいいのか、ヒントがあればありがたいです。
このような方が良い(EAを再起動した場合に備えて)。
注文が1つだけなら、なくても大丈夫です。
if(OrdersTotal()<1))
{
}
......
私はリアルとデモのすべてのEAで、注文やポジションに関する重要なデータを変数に保存していません。EAロジックに必要なデータは、注文コメントで書くのが限界です。ポジションの有無、数、注文の有無、クローズしたポジション、クローズ方法を調べる必要があるときは、マーケットのポジションや注文、ヒストリカルデータをループさせて、必要な注文を探し、必要な情報を取得することにしています。この方法では、予期せぬコンピュータのシャットダウン時に失われる可能性があるため、重要な情報をすべて変数に保存しないようにしています。後からいつでも取り出せる。端末のグローバル変数に保存しようとしたのですが、コンピュータがクラッシュ/ハングアップしたときに、情報が常にそこに保存されるわけではないことが判明しました。それに、常に新鮮な情報を書き込むことを監督するのは、私にとっては面倒なことです...。必要なものを必要な時に探しやすいと思います。
そうなんです...。安心感を与える。もちろん、正しいのは、すべての注文に目を通すことです。しかし、これは具体的なケースです。そして、GlobalVariablesがなくなれば、この証券会社から離れるべきでしょう。
どういうことですか~この証券会社はわざとやっているのですか?MT4はブローカーに簡単に操作される端末なので、不正が多いのではと言われたのですが、聞いたことのある方はいらっしゃいますか?
つまり、DCはわざとやっているのでしょうか?MT4はブローカーに簡単にコントロールされるターミナルで、それ故に多くの不正行為が可能だと聞いたのですが、どなたかご存知でしょうか?
。
よくわからないんです。DCがグローバル変数を破壊するのは、もちろん、X......束を構築していない限り、何の意味があるのでしょう。ドキュメントから引用します。
「クライアントターミナルのグローバル変数とMQL4プログラムのグローバルスコープで宣言された変数を混在させないでください。 グローバル変数は最後のアクセスから4週間はクライアントターミナルに存在しますが、その後は自動的に削除されます。グローバル変数へのアクセスは、新しい値を設定するだけでなく、グローバル変数の値を 読み出すこともできます。クライアントターミナルのグローバル変数は、クライアントターミナルで起動したすべてのMQL4プログラムから同時にアクセスすることができます。0.01や0.1のロットで仕事をしていても、誰も虐げたりしない、些細なことだから...」と。しかし、リアル口座で100ロット開設した場合、資金を奪い合う覚悟が必要だ。
プロに助けてほしい!!!すでにこのコードで頭を悩ませています...。4つのバッファがあり、そのうち2つは正しく動作しますが(Buffer &buffer2)、残りの2つは正しく動作しません。ある条件が発生するとバッファが満たされ、この値が1つ上、2つ下となるとバッファは削除(ゼロ化)されますが、残りの2つのバッファはチャートにぶら下がったままとなります。修正方法を教えてください。