[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 214

 

こんにちは。注文が開始されたときのバーの 数を返す関数を書きました。

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を返します。どこで間違えたのか?ありがとうございました。

 
first_may:

こんにちは。注文が開始されたときのバーの数を返す関数を書きました。

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がなければ、です。

 
first_may:

こんにちは。注文が開始されたときのバーの数を返す関数を書きました。

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には、整数値として宣言されていますが、始値が 代入されています

 
Vinin:

変数tは整数値として宣言されていますが、始値が代入されています。

そうですね、OrderOpenTime() と書くつもりが、OrderOpenPrice() と書いてしまいました。
 
ありがとうございます、自分の間違いに気づきました。
 

そのような状態をどのように表現するのでしょうか。



アバター
13
4absinth 2011.09.25 19:23

アドバイスをお願いします。

もし、当日の最初の5分足の極値(例えば高値)が、当日の(日足の)極値と一致したら、何か行動を起こす。 どのように表現するのでしょうか?


ロジャー 2011.09.25 20:25 修正|削除
if(MathAbs(High[1]-iHigh(NULL,PERIOD_D1,0))<Point)
 

help good people!!!


アバター
1
垂れ流し 2011.09.25 19:34

リソースをご利用の皆様、こんにちは。

実数のファイルへの読み書きに直面した人、助けてください。

タスクは、ファイルの残高から読み取ることです、現在の残高がより多くの場合 - ファイルを上書きします。

問題は、常に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)を実行します。
}

先ほどはどうもありがとうございました!!!


アバター
2222
Roger 2011年9月25日 20:22

この行に注目

FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);


3461
Zhunko 2011年09月25日 20:27

1.もっと敬意と親しみをもってコードを公開すべきです。

2.8バイトの整数を書き込もうとしている。MQL4には、このようなデータ型はありません。

 

\♪何がいけなかったんだろう なぜこんなにエラーが多いのか(最大値を知りたい(過去10バーにおけるインジケータの最大値を知る必要があります。)よろしくお願いします。

 

皆さん、ごきげんよう。

最初のボットを書いているところですが、同時にMQLにも慣れてきました。テスト中に以下のような問題が発生しました。

OP_BUYSTOPの注文は、チャートから判断して目標値には達していないが、注文直後に実行される(下図)。

時間タイプご注文ボリューム価格S / LT / P利益バランス
12011.09.19 02:10買い取り停止10.0176.93576.73577.135
22011.09.19 02:10買う10.0176.93576.73577.135

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);

皆さん、本当にありがとうございました。

 
Shniperson:

\♪何がいけなかったんだろう なぜこんなにエラーが多いのか?(過去10バーのインジケータの最大値 を知る必要があります。) ありがとうございました。

関数Hiを宣言していますね。

double Hi(int pos=0)
start()関数の内部