int BarLastOpenPose() { datetime t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; if (OrderType()>1) continue; if (t<OrderOpenPrice()) t=OrderOpenPrice(); }. }
int BarLastOpenPose() { datetime t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; if (OrderType()>1) continue; if (t<OrderOpenPrice()) t=OrderOpenPrice(); }. }
int BarLastOpenPose() { datetime t; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; if (OrderType()>1) continue; if (t<OrderOpenPrice()) t=OrderOpenPrice(); }. }
こんにちは。注文が開始されたときのバーの 数を返す関数を書きました。
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}.
}
return (iBarShift(Symbol(),Period(),t,true));
}.
しかし、常に-1を返します。どこで間違えたのか?ありがとうございました。
こんにちは。注文が開始されたときのバーの数を返す関数を書きました。
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}.
}
return (iBarShift(Symbol(),Period(),t,true));
}.
しかし、常に-1を返します。どこで間違えたのか?ありがとうございました。
たぶん、こんな感じなんでしょうね。
return(iBarShift(Symbol(),Period(),t)); つまり、trueがなければ、です。
こんにちは。注文が開始されたときのバーの数を返す関数を書きました。
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}.
}
return (iBarShift(Symbol(),Period(),t,true));
}.
しかし、常に-1が返される。どこで間違えたのか?よろしくお願いします。
変数tには、整数値として宣言されていますが、始値が 代入されています
変数tは整数値として宣言されていますが、始値が代入されています。
そのような状態をどのように表現するのでしょうか。
アドバイスをお願いします。
もし、当日の最初の5分足の極値(例えば高値)が、当日の(日足の)極値と一致したら、何か行動を起こす。 どのように表現するのでしょうか?
help good people!!!
リソースをご利用の皆様、こんにちは。
実数のファイルへの読み書きに直面した人、助けてください。
タスクは、ファイルの残高から読み取ることです、現在の残高がより多くの場合 - ファイルを上書きします。
問題は、常に0(ゼロ)が出力されることです。
整数の書き出し・読み出しでは、そのような問題は見つかっていません。
以下はそのコードです。
ダブルバランス
int file_handle_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//copy position, in case of empty file - position = 0
if (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
Alert(balance); -------------------------------------- ここで、前回保存した残高を書き込むが、ゼロを書き込む必要がある。
FileClose(file_handle_bala)を実行します。
if (AccountBalance()>balance) ------------------------------------ そして、以下のアラートは何も出力されないので、このルールは機能しません。
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
balance=AccountBalance()です。
アラート(バランス)。
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala)を実行します。
}
}
else // ファイルが空の場合
{
FileClose(file_handle_bala); // まず、開いているファイルを閉じます。
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //書き込み用に開く。
balance=AccountBalance()です。
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala)を実行します。
}
先ほどはどうもありがとうございました!!!
この行に注目
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1.もっと敬意と親しみをもってコードを公開すべきです。
2.8バイトの整数を書き込もうとしている。MQL4には、このようなデータ型はありません。
\♪何がいけなかったんだろう なぜこんなにエラーが多いのか(最大値を知りたい
(過去10バーにおけるインジケータの最大値を知る必要があります。)よろしくお願いします。
皆さん、ごきげんよう。
最初のボットを書いているところですが、同時にMQLにも慣れてきました。テスト中に以下のような問題が発生しました。
OP_BUYSTOPの注文は、チャートから判断して目標値には達していないが、注文直後に実行される(下図)。
USDJPY,M5(ビジュアル)
日付 2011.09.19
時間 02:15
オープン 76.903
高 76.909
低 76.890
閉じる 76.890
巻 66
全てのダニを検査しています。
OP_BUYSTOPオーダーを正しく理解していないのかもしれません。価格が一定の値を超えたら買うこと、ですね。
以下は、注文を出すソースコードの一部です。
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\♪何がいけなかったんだろう なぜこんなにエラーが多いのか?(過去10バーのインジケータの最大値 を知る必要があります。) ありがとうございました。
関数Hiを宣言していますね。
start()関数の内部