どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 471

 
beginner:

ができますが、問題はなぜrates[0].closeができないかです。

推測ですが、まだオブジェクトが形成されていないためです。
 
tara:

まだ形成されていないからとしか思えない。


いや、何かの間違いだろう、5のようになるはずだ、それとも私が混乱しているのだろうか?

 
beginner:


いや、何かの間違いだろう、5のようになるはずだ、それとも私が混乱しているのだろうか?

Close[0]が存在しないことを忘れてはいけません、ただ、使い方が違うだけです。
 
Close[0] - 現在の時刻のローソクの終値、および他のすべてのパラメータhigh、low...です。
 
tara:
Close[0]が存在しないことを忘れてはいけません、ただ、使い方が違うだけです。

ダメダメは存在しない...

"スプーンがない" (c) )))

Close[0]=Bidなので・・・。

 
evillive:

ダメダメは存在しない...

"スプーンがない" )))

Close[0]=Bid、ここで...



私ではなく、Metakwotsに聞くべきでしょう:)
 
私は未熟にも、まだ作られていない見積もりへの言及は、アピールの邪魔になると思っています。
 

こんにちは、次のような問題があります。ログによると、テスト時にOrderModifyが130と出ています。アドバイザーの規約をご紹介します。

//+------------------------------------------------------------------+

//| Test3.mq4

//| ポポフ ウラジミール

//| http://vk.com/id143715412 |

//+------------------------------------------------------------------+

#property copyright"Popov Vladimir" (ポポフ・ウラジミール)

#プロパティリンク "http://vk.com/id143715412"


extern double Lots = 0.1;

extern int TakeProfit = 250;

extern int StopLoss = 100;

extern int Slippage = 10;

extern string comment = "Tma bot";

extern int Magic = 123;

extern string Indi = "インジケーターデータ";

extern string TimeFrame = "現在の時間枠";

extern int HalfLength = 20;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern inttern ATRPeriod = 100;

extern bool Interpolate = true;



Double PriceHigh, PriceLow, SL, TP;

int ticketです。


//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{


if (Digits == 3 || Digits == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

スリッページ *= 10;

}





return(0)です。

}

//+------------------------------------------------------------------+

//| 専門家による初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0)です。

}

//+------------------------------------------------------------------+

//| エキスパートスタート機能

//+------------------------------------------------------------------+

int start()

{

PriceHigh = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceLow = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

if (Bid >= PriceHigh && CountSell() == 0)

{

SL = NormalizeDouble(Bid+StopLoss*Point, Digits)です。

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits)です。

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, comment, Magic, 0, Red);

{

if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);

}

}


if(Ask <= PriceLow && CountBuy() == 0)

{

SL = NormalizeDouble(Ask-StopLoss*Point, Digits)です。

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits)です。

ticket = OrderSend(Symbol(), OP_BUY, Lots, Bid, Slippage, 0, 0, comment, Magic, 0, Blue)です。

{

if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);

}

}

if (Ask <= PriceLow && CountSell() > 0)

{

for(int i=OrdersTotal()-1; i >=0; i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black)。

}

}

}

if (Bid >= PriceLow && CountBuy() > 0)

{

for(i=OrdersTotal()-1; i >=0; i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if(OrderMagicNumber() == Magic && OrderType() == OP_BUY)

オーダークローズ(OrderTicket(), OrderLots(), Bid, Slippage, Green)

}

}

}

return(0)です。

}

//+------------------------------------------------------------------+


int CountBuy()

{

int count = 0;

for (int tr = OrdersTotal()-1; tr >= 0; tr --)

{

OrderSelect(tr, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if (OrderType() == OP_BUY)

count++です。

}

}

を返す(カウント)。

}


//+------------------------------------------------------------------+


int CountSell()

{

int count = 0;

for (int tr= OrdersTotal()-1; tr >= 0; tr --)

{

OrderSelect(tr, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if (OrderType() == OP_SELL)

count++です。

}

}

を返す(カウント)。

}

 

ここで修正する

SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

 SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);
2番目のケースでは、TPであるべきです
 

おいおい...

ロジャーさん、ありがとうございます。