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

 
ikatsko:
Почему команда Print(TimeToStr(Time[0],TIME_MINUTES)); выдает результат, например, 12:00[sl]? Здесь вопрос в приписке в квадратных скобках. И как получить результат без приписки в квадратных скобках? (Заранее благодарю)

Уверены? Обычно такое приписывает ДЦ в комментарий ордера при закрытии по стопу. [tp] приписывает при закрытии по тейку.

Воткнул вашу строчку в пустой шаблон советника, запустил его в тестере на М15 по ценам открытия:


Нет ваших [sl]
 
Sepulca:


Правильно, нехрен на ноль делить))))
Надо предусмотреть условие, запрещающее делить на ноль, вот и все. Хотя я программист не высокого уровня, но о таких вещах не забываю, несмотря на то, что у экзель всего 7 возможных условных переходов.
 
ikatsko:
Почему команда Print(TimeToStr(Time[0],TIME_MINUTES)); выдает результат, например, 12:00[sl]? Здесь вопрос в приписке в квадратных скобках. И как получить результат без приписки в квадратных скобках? (Заранее благодарю)

Приветствую Вас, помню, что где-то мы сотрудничали и соприкасались и Вы выполнили мою просьбу. Благодарю.
 
artmedia70:

Уверены? Обычно такое приписывает ДЦ в комментарий ордера при закрытии по стопу. [tp] приписывает при закрытии по тейку.

Воткнул вашу строчку в пустой шаблон советника, запустил его в тестере на М15 по ценам открытия:


Нет ваших [sl]


Да, Вы правы. Действительно команда ставилась после SL. Ясно. Спасибо.

 

Всем привет!!! У меня советник открывает ордера против движения, как поменять или подскажите где менять???

void modify_orders( int type )
{
int i;
datetime time_last = 0, time_first = TimeCurrent();
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, level;

for( i = OrdersTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type )
{
if ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}


if ( type == 0 )level = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
if ( type == 1 )level = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);

for( i = OrdersTotal() - 1; i >= 0; i -- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),level,0);
}
}

double last_trade( int t )
{

 
KeinRich:

Всем привет!!! У меня советник открывает ордера против движения, как поменять или подскажите где менять???


А при чём тут функция модификации, не очень-то корректно написанная к тому же?
 
Есть ли "горячая" комбинация клавиш для вызова окна Alert'ов, после его закрытия?
 
Подскажите как нарисовать стрелку с помощью объекта LABEL, используя шрифт Wingdings.
 
Neo333:
Есть ли "горячая" комбинация клавиш для вызова окна Alert'ов, после его закрытия?
В логе можно посмотреть.
 
zfs:
Подскажите как нарисовать стрелку с помощью объекта LABEL, используя шрифт Wingdings.
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+----------------------------------------------------------------------------+

Вызываем, чтобы нарисовать красный череп на текущей свече на цене Bid, размером 1 при помощи Arrow:

SetArrow(78, Red, "Scull", Time[0], Bid, 1);

Вот ф-ция для вывода текста. Они похожи. Попробуйте сделать самостоятельно для вывода метки.

//+----------------------------------------------------------------------------+
void SetArrowText(string text, color cl, string font="Arial", string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TEXT, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSetText(nm, text,sz, font, cl);
}
//+----------------------------------------------------------------------------+