[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 398

 
solnce600:

私はすべて正しいことをしたと思っています.まだ開きません(テスターの場合)

ログブックにもエラー情報なし http://clip2net.com/s/5aLodh

わからないんです~どうしたんですか?

価格を正常化する必要があります。

double Price=NormalizeDouble(0.9022, Digits);
 
PapaYozh:

価格を正常化する必要があります。

パパ!ありがとうございました......あと、もうひとつ小さな疑問が......。

以下の場合にのみ注文を行いたい。

1.ローソク足N30の始値からローソク足 N1の最大値 までの距離が150p 以上。


2.キャンドル N 30の 開始 時間は、-任意の 時間、任意の 日付に等しいですが、分の値は15に等しくなければなりません(すなわち、 0:15;1:15;...23:15)。

if ((High[1]-Open[30])> 1500*Point) &&(???????????????)

//オープンオーダー

2つ目の条件はTime [30] 関数を使って作りたかったの ですが、この関数は分単位だけでなく、時間、日、年単位の値も返します

必要なキャンドルのためにMinute( )関数も、ローソク足がゼロの時だけ分の値を返すので、私には合いません。

この点について、どのようにコーディングするのがベストなのか、アドバイスをお願いします。



 
solnce600:

パパ!ありがとうございました......あと、もうひとつ小さな疑問が......。

以下の場合にのみ注文を行いたい。

1.ローソク足N30の始値からローソク足 N1の最大値 までの距離が150p 以上。


2.キャンドル N 30の開始 時間は、-任意の 時間、任意の 日付、しかし分の値は15に等しくなければならない( すなわち0:15;1:15;...23:15) です。

if ((High[1]-Open[30])> 1500*Point) &&(???????????????)

//オープンオーダー

2つ目の条件はTime [30] 関数を使って作りたかったの ですが、この関数は分単位だけでなく、時間、日、年単位の値も返します

必要なキャンドルのためにMinute( )関数も、ローソク足がゼロの時だけ分の値を返すので、私には合いません。

どのようにコーディングすればよいか、アドバイスをお願いします。

https://docs.mql4.com/ru/dateandtime/TimeMinute

 
PapaYozh:

価格を正常化する必要があります。

正常化しました、まだ開きません...

他のコードは正規化せずに開けるのに・・・。

int start()
 {
 double Price=NormalizeDouble(0.9022, Digits); 
 if  ((iTime( NULL,0, 0) )== D'14.08.2000 14 00')
 if (Bid == Price)
if(NormalizeDouble (MathAbs (Bid - Price ), Digits) <= 0.0005)  
 int Ticket= OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1490*Point,Ask-110*Point,"jfh",123 );
}
return(0);
 
ありがとうございます。
 
solnce600:

正常化しました、まだ開きません...

他のコードは正規化せずに開けるのに・・・。

Print() を使って、どの条件が失敗するのか見てみましょう。
 
皆さん、こんにちは。ぜひ、このインジケーターをご覧ください。ちゃんと動くようになるのかどうか。
価格が下降するときは、赤い線に加えて青い線がすでに1本あります(赤い線が追加されています、添付ファイルをご覧ください)。その後、トレンドが変わり、ここではすべてが正しく、青だけになりました。

おつかれさまでした


/* デコンパイル済 /* 削除


 
solnce600:

パパ!ありがとうございました......あと、もうひとつ小さな疑問が......。

以下の場合にのみ注文を行いたい。

1.ローソク足N30の始値からローソク足 N1の最大値 までの距離が150p 以上。


2.キャンドル N 30の開始 時間は、-任意の 時間、任意の 日付に等しいが、MINUTESの値は15でなければなりません( すなわち、0時15分、1時15分、...23時15分)

if ((High[1]-Open[30])> 1500*Point) &&(???????????????)

//オープンオーダー

2つ目の条件はTime [30] 関数を使って作りたかったの ですが、この関数は分単位だけでなく、時間、日、年単位の値も返します

必要なキャンドルのために関数Minute()も、ローソク足がゼロの時だけ分の値を返すので、私には合いません。

この点について、最適なコーディング方法を教えてください。

ローソクの始まりからの時間を固定する(計算に含める)には、iBarShift(Symbol(), 1, 振動点)を使用すると便利です。そして、Oscillation pointは追跡している期間のバーの始まりです。あなたの場合

    if (iBarShift (Symbol(), 1, iOpen (Symbol(), PERIOD_M30, 0)) == 15) //что-то делаем

あなたのコードの一部をちらっと見ただけで、何を書いているのか全く考えていないことがわかります。考えてみてください(抜粋)。

if((Minute( ) ==45)&&(Minute( ) <50))

...

 
TarasBY:


あなたのコードの一部をちらっと見ただけですが、あなたは自分の書いていることについてまったく考えていないと言えるでしょう。考えてみてください(断片)。

...


ご回答ありがとうございます。

意味がないと思っていることに意味がある、そしてそれが機能する

if(Bid==Price) // その時間が ロウソクの開始 時間と等しい場合 。新ローソク足ができる

if((Minute( ) ==45)&&(Minute( ) <50))// 新しいローソク足の開始時の分値が45と50の 間であれば(ローソク足の中には45分で開くものも あり、正確に45分でない ものもあるということです)、そのローソク足の開始時の分値は 45分です。そのため、 &&(Minute( ) <50) を使って、 45 分に開いたローソク足が 実際には1、2、3、4分後に開いて いるのを見逃さない ようにしています )

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+150*Point, "jfh",123 );

}.

を返します。

そこで、注文は各15分または5分または1分のローソク足の開始時に開き、技術的には 45分(+4分以内、すなわち遅延あり)に開かれることになります。
 
solnce600:

ちょっとした ことを理解してもらおうと思っているのです。しかし、非常に重要な ポイントとして、「処方したかったもの」と「処方したもの」は全く別物なのです!!!!状態であれば。

if((Minute( ) ==45)&&(Minute( ) <50))

Minute() == 46 ならば、GENERAL条件は機能しない!!!!これはどうでしょう。

if ((Minute() >= 45) && (Minute() < 50))

???:-[