ローとハイ - ページ 2

 

iはどこまで行くのか?Bars-1数とは何ですか?

 
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00 の間の 8 つの M15 バー
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00の間の8本のM15バー
}
 
fxcourt:
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00 の間の 8 つの M15 バー
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00の間の8本のM15バー
}

うまくいきませんね〜。本当にどうしたらいいんでしょうか...。

 
01005379:

[...]

うまくいきません。本当にどうしたらいいんでしょうか...。

どんな風に うまくいかないのか?値が間違っているのでしょうか?全く計算されていないのか?

 
jjc:

どのような点で うまくいかないのでしょうか?値が間違っているのか?全く計算されていないのでしょうか?

どうしたらいいのでしょうか?私は、価格がHighValueより大きいときに買いをオープンするように注文しており、売りはその逆です。

これらの値をモニターに書き込むにはどうしたらよいでしょうか?Print("High value: ",HighValue) とします。

この値が何であるかを見つける唯一の方法だと思うのですが、15.00と17.00の間で高値/安値ではありません。

 
は、M15のチャートを使っているのですか?
 

そうですね、ここにコードを書いて、誰かが解決策を見つけるのがベストだと思います。


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false。
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00 の間の 8 つの M15 バー
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00の間の8つのM15バー
}

//-----

if (時()==0 && (分()==0 && (秒()==1)))
{
TopRange=0;
LowRange=0;
bought=false;
sold=false;
sessionfound=false。
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1))&&(Trade_on_Monday==true))。TradeDayOK=trueとする。

//-----
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("資金がありません。フリーマージン = ", AccountFreeMargin());
return(0);

if(newbar==Time[0])return(0)。
else newbar=Time[0]です。

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23))
{
if ((bought==false) && (Low[1] > (TopRange+Point*3)))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=trueとする。
if(チケット>0)
{
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

else Print("BUY注文の開始エラー : ",GetLastError());
return(0);

if ((sold==false) && (High[1] < (LowRange-Point*3) ))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
sold=trueとする。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL order opened : ",OrderOpenPrice());

else Print("SELL注文の開始エラー : ",GetLastError());
return(0);

return(0)。

return(0)。


 
で、EAを実行するとどうなるかというと
 
買いポジションと売りポジションを開くが、適切な水準にならない。
 
01005379:

そうですね、ここにコードを書いて、誰かが解決策を見つけるのがベストだと思います。


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false。
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 15.00-17.00 の間の 8 つの M15 バー
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 15.00-17.00の間の8つのM15バー
}

//-----

if (時()==0 && (分()==0 && (秒()==1)))
{
TopRange=0;
LowRange=0;
bought=false;
sold=false;
sessionfound=false。
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1))&&(Trade_on_Monday==true))。TradeDayOK=trueとする。

//-----
total=OrdersTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("資金がありません。フリーマージン = ", AccountFreeMargin());
return(0);

if(newbar==Time[0])return(0)。
else newbar=Time[0]です。

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23))
{
if ((bought==false) &&Ask >= TopRange)

{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=trueとする。
if(チケット>0)
{
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

else Print("BUY注文の開始エラー : ",GetLastError());
return(0);

if ((sold==false) &&Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
sold=trueとする。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("SELL order opened : ",OrderOpenPrice());

else Print("SELL注文の開始エラー : ",GetLastError());
return(0);

return(0)。

return(0)。