Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 471

 
beginner:

можно, вопрос в другом, почему нельзя rates[0].close ?

Могу лишь предположить: потому, что объект еще не сформирован.
 
tara:

Могу лишь предположить: потому, что объект еще не сформирован.


нет, тут наверно ошибка у них, должно быть как в 5-ке, или я что путаю?

 
beginner:


нет, тут наверно ошибка у них, должно быть как в 5-ке, или я что путаю?

Не забывайте, что Close[0] не существует, просто мы привыкли к иному.
 
Close[0] - цена закрытия свечи на текущий момент времени, так же как и все остальные параметры хай, лоу...
 
tara:
Не забывайте, что Close[0] не существует, просто мы привыкли к иному.

не надо вот этого... несуществует...

"Ложки нет" (с) )))

Close[0]=Bid, вотъ...

 
evillive:

не надо вот этого... несуществует...

"Ложки нет" (с) )))

Close[0]=Bid, вотъ...



Это у Метаквотов поинтересоваться надо, а не мне втирать:)
 
ЗЫ Я-бы по неопытности использовал любое обращение к несостоявшейся пока котировке для деструкции обращения.
 

Здравствуйте, у меня проблема следующая. Журнал при тесте выдает OrderModify 130, помогите найти выход. Вот код советника:

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

//| Test3.mq4 |

//| Попов Владимир |

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

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

#property copyright "Попов Владимир"

#property link "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 = "current time frame";

extern int HalfLength = 20;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern int ATRPeriod = 100;

extern bool Interpolate = true;



double PriceHigh, PriceLow, SL, TP;

int ticket;


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

//| expert initialization function |

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

int init()

{


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

{

TakeProfit *= 10;

StopLoss *= 10;

Slippage *= 10;

}





return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

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 (ticket > 0)

{

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 (ticket > 0)

{

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)

OrderClose(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++;

}

}

return (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++;

}

}

return (count);

}

 

Исправьте здесь

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

 SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);
Во втором случае должно быть TP
 

Вот, блин...

Спасибо, Roger!

Причина обращения: