int start()
{
int gap=0;
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap=gap+1;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
int gap=0;
int start()
{
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap++;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
int start()
{
staticint gap=0;
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap=gap+1;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
こんなクエリーを作ると
こんな結果が出ます。
2020.06.17 13:49:53.270 2020.01.02 06:50:00 Symbol EURUSD_i Digits 5 Point 1e-05
このような要望を出すと
こんな結果が出ます。
2020.06.17 13:51:58.787 2020.01.02 06:45:00 Symbol EURUSD_i Digits 0 Point 0.0
同時に、Print関数を 挿入しない場合は、全くエラーが発生せず、オーダーが自分自身を修正しようともしないことに注意したいと思います。まるでCTradeが私の注文を見ていないかのようです。
記号やマジックナンバーのチェックがうまくいかない。
結果
2020.06.17 14:37:38.147 2020.01.02 06:50:00 シンボルマジック 0 チケット 2
マジックナンバーは12345、記号はユーロドルです。
なぜシンボルとメディックが手に入らないのですか?
文字列を変更した場合。
に変更されます。
で、マジックナンバーによるバリデーションを削除すると、価格に関する問題が発生します。
2020.06.17 01:38:24.136 2020.01.02 07:40:00 failed modify order #2 buy stop 0.1 EURUSD_i at 1.12086 sl: 1.12023 tp: 1.12275 -> 1.00000, sl: 1.00000 tp: 1.00000 [Invalid price] [無効な価格] を修正しました。
2020.06.17 01:38:24.136 2020.01.02 07:40:00 CTrade::OrderSend: modify #2 at 1.00000 (sl: 1.00000 tp: 1.00000) [invalid price].
2020.06.17 01:38:24.136 2020.01.02 07:40:00 BUY STOP modification failed!結果 Retcode: 10015, Retcodeの説明: 価格が無効です。
この同じコードが別のExpert Advisorでは問題なく動作するのに、私はすでに頭を悩ませています。
私は何を間違えているのだろう?
CSymbolInfo クラスのオブジェクトが正しく初期化されていない(またはされていない)。
この文字列がない場合は、asymbol.Name(Symbol())を追加してください。
もしあれば、Name(string symbol)関数で何が起こるかデバッグしてください。
Refresh()でm_digits等のフィールドを埋める。
s.s. あなたが追加したものから判断すると、あなたは間違いなくasymbolを初期化していませんね。
新しいティックが到着するまでは、ボタンの動きはありません。それが目で見てわかるんです。価格が変わると同時に、ボタンが動きます。
今日、新しいティックでも、何も変えていないのに、ボタンが再描画されなくなりました。背景だけが動いている。OnTickで座標を変更し、NEXT tickでボタンが動くと主張されているようですが、実際はどうなのでしょうか?座標を変更したもの、それともクリスマスのもの?
CSymbolInfoクラスのオブジェクトが正しく初期化されていない(または全く初期化されていない)。
もし、そのような文字列がなければ、asymbol.Name(Symbol())を追加してください。
もしあれば、Name(string symbol)関数で何が起こるかをデバッグしてください。
Refresh()でm_digits等のフィールドを埋める。
s.s. あなたが追加したものから判断すると、あなたのasymbolは間違いなく初期化されていないようです。
初期化なのでしょうか?コンパイル時に以下のような情報が得られます。
'Trade.mq5 panel' Trade.mq5 panel 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
生成されたコード 1 1
エラー0件、警告0件、経過時間3192msec 1 1
買い逆指値注文を出した後、すべての注文を再計算し、未決済の注文を選択し、シンボルとMajdic番号が一致するかどうかをチェックします。
この段階では何も起こりません。上に書いたように asymbol.Name() はなぜかオープンオーダーのシンボルを返さず、 aorder.Magic() は値0を返し(私のマジックナンバーは121345ですが)、 asymbol.TickSize() は値0を返します。つまり、チェックに失敗したため、それ以降の注文の処理は停止する。デバッグ in function Name(string symbol) what's going on "というフレーズがよく わからないのですが、明確にしてください。何をどこに加えればいいのでしょうか?
OnTickで座標を変更し、NEXT tickでボタンが動くと主張されているようですが、実際はどうなのでしょうか?座標を変更したもの、それともクリスマスのもの?
この段階では何も起こりません。すでに上に書いたように、関数 asymbol.Name() はなぜかオープンオーダーのシンボルを返さず、関数 aorder.Magic() は値 0 を返し(私のマジックは 121345 ですが)、関数 asymbol.TickSize() は値 0 を返すからです。つまり、チェックに失敗したため、それ以降の注文の処理は停止する。デバッグ in function Name(string symbol) what's going on "というフレーズがよく わからないのですが、明確にしてください。何をどこに加えればいいのでしょうか?
オーダー インデックス/チケットの エラーは、マジック0で判断したエラーかもしれません。 オーダー構造体にアクセスした瞬間に、間違った順番のデータが書き込まれます。選択ループの中で、次の番号が最後の オーダーセットに配置され、必要な番号でない場合があります。オーダー構造体から、最後に選択されたオーダーのデータが返される。
私のコードの一番上にある行は
これは初期化なのでしょうか?コンパイルすると、以下のような情報が得られます。
'Trade panel.mq5' Trade panel.mq5 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
生成されたコード 1 1
エラー0件、警告0件、経過時間3192msec 1 1
買い逆指値注文を出した後、すべての注文を再計算し、未決済の注文を選択して、シンボルとmqh番号が一致するかどうかをチェックします。
この段階では何も起こりません。上に書いたように asymbol.Name() はなぜかオープンオーダーのシンボルを返さず、 aorder.Magic() は値0を返し(私のマジックナンバーは121345ですが)、 asymbol.TickSize() は値0を返します。つまり、チェックに失敗したため、それ以降の注文の処理は停止する。デバッグ in function Name(string symbol) what's going on "というフレーズがよく わからないのですが、明確にしてください。何をどこに加えればいいのでしょうか?
げっ、なんでよくわからないものを使うんだ(やたらとスーツケースだったらどうしよう))。)
そして、あなたは書かれていることを読もうともしない
asymbol.Name(Symbol())がない場合は、追加してください。
s.w. 初期化についてもっと説明したかったのですが、それも無駄だったようです。マジック0によるオーダー インデックス/チケットに 誤りがある可能性があります。 オーダー構造を参照した時点で、誤ったオーダーのデータが格納されます。選択サイクルでは、最後の オーダーセットに次の番号が配置されるかもしれませんが、必要な番号ではありません。オーダー構造体から、最後に選択されたオーダーのデータが返される。
こんにちは。
簡単な問題を解決するのを手伝ってください。
隙間カウンター。10ポイント以上のギャップをカウントしたい。
変数 "gap "はゼロにリセットされる。その理由がわからない。もう全部試しました。ループやスタティックも試しましたが、うまくいきません。ループの書き方が間違っていたのでは?
こんにちは。
簡単な問題を解決するのを手伝ってください。
隙間カウンター。10ポイント以上のギャップをカウントしたい。
変数 "gap "はゼロにリセットされる。その理由がわからない。もう全部試しました。ループやスタティックも試しましたが、うまくいきません。ループの書き方が間違っていたのでは?
変数gapは関数startのスコープ内にあり、新しいtickごとにゼロで再初期化されます。
こんにちは。
簡単な問題を解決するのを手伝ってください。
隙間カウンター。10ポイント以上のギャップをカウントしたい。
変数 "gap "はゼロにリセットされる。その理由がわからない。もう全部試しました。ループやスタティックも試しましたが、うまくいきません。ループの書き方が間違っていたのでは?