[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 329

 
emilien:
extern int переменная = 0;
extern int shift = 0.0000;
extern int shift2 = 0.0000;
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),15,переменная,0,MODE_SMA,PRICE_CLOSE,0),shift,2),Bisque,735,277,0,14);
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),15,переменная,0,MODE_SMA,PRICE_CLOSE,0),shift2,2),Bisque,680,27 7,0,14);
//----
return(0);
}
//+------------------------------------------------------------------+


void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd);
ObjectSet(nm, OBJPROP_CORNER, cr);
ObjectSet(nm, OBJPROP_FONTSIZE, fs);
}



подскажите ещё, плиз.
не могу назначить вертикальный отступ вверх shift и вниз shift2 от машки.
чтобы этот параметр задавался для каждого чарта свой.
получаю ошибку при компиляции
со скобками посмотрите, вы ставите их внутрь функции DoubleToStr, которая сдвигать не умеет
 
ilunga:

Tb и Ts в смысле TPb и TPs? тогда опять же, в одну сторону поехали, а ордера разные

отPrint'уйте все значения и посмотрите что получается

прошу прощения!!


double pb = Ask+20*Point;

double ps = Bid-20*Point;

double TPb = Ask+50*Point;

double TPs = Bid-50*Point;

ticket=OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+q*Point,5,0,Ask+50*Point,"Aw",mn,0,CLR_NONE);

ticket=OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-q*Point,5,0,Bid-50*Point,"Aw",mn,0,CLR_NONE);

if (!ticket) Print(GetLastError());

}

}

ticket=OrderTicket();

for (ii=OrdersTotal(); ii>0; ii--)

{

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

{

if (OrderComment()=="Aw")

{

if (OrderType()==OP_BUYSTOP)

{

t=OrderModify(OrderTicket(),pb,0,TPb,0,CLR_NONE);

if (!t) Print("BUY О Ш И Б К А = ",GetLastError());

}

if (OrderType()==OP_SELLSTOP)

{

t=OrderModify(OrderTicket(),ps,0,TPs,0,CLR_NONE);

if (!t) Print("SELL О Ш Ы Б К А = ",GetLastError());

}

}

}

}

Это из журнала:

13:55:47 0 EURUSD,M1: modify #736403688 sell stop 0.01 EURUSD at 1.3622 sl: 0.0000 tp: 1.3592 ok

13:55:47 0 EURUSD,M1: SELL О Ш Ы Б К А = 1

13:55:53 0 EURUSD,M1: modify #736403688 sell stop 0.01 EURUSD at 1.3623 sl: 0.0000 tp: 1.3593 ok

13:55:53 0 EURUSD,M1: SELL О Ш Ы Б К А = 1

13:55:54 0 EURUSD,M1: modify #736403688 sell stop 0.01 EURUSD at 1.3622 sl: 0.0000 tp: 1.3592 ok

13:55:54 0 EURUSD,M1: SELL О Ш Ы Б К А = 1

13:55:55 0 EURUSD,M1: modify #736403688 sell stop 0.01 EURUSD at 1.3623 sl: 0.0000 tp: 1.3593 ok

бай не модифицирует

заранее благодарен!

 
smartemiy:

прошу прощения!!


...

for (ii=OrdersTotal(); ii>0; ii--)

...

бай не модифицирует

заранее благодарен!

Нумерация идет с нуля. Подвиньте цикл на 1:

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

 
ilunga:
со скобками посмотрите, вы ставите их внутрь функции DoubleToStr, которая сдвигать не умеет

unbalanced left parenthesis

координаты ошибки - это фигурная скобка в самом конце.

но скобка эта стоит нормально.

что же это может быть?


 
emilien:

unbalanced left parenthesis

координаты ошибки - это фигурная скобка в самом конце.

но скобка эта стоит нормально.

что же это может быть?


где-то пропустили скобочку, вот и ругается. Посмотрите внимательнее
 
ilunga:

Нумерация идет с нуля. Подвиньте цикл на 1:

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

пасиб огромное!! проблема была именно в этом.

--------------------------------------------------------------

почему же тогда выскакивает ошибка

15:38:55 0 EURUSD,M1: SELL О Ш Ы Б К А = 1

15:38:55 0 EURUSD,M1: BUY О Ш И Б К А = 1

 
Всем спасибо, все заработало. =)
 
Roman.:


Это Вам не Паскаль - здесь нет процедур...:-) Одна ф-ия - одно значение...:-)

См. ф-ию GetMarketInfo скрипта закрытия всех ордеров - с использованием массивов можно.


Спасибо.
 

Здравствуйте! Как можно формализовать и алгоритмизировать частоту чередования "белых" и "зеленых" баров ? нужно чтобы выявлять такие вот "пилы"

 
Shniperson:

Здравствуйте! Как можно формализовать и алгоритмизировать частоту чередования "белых" и "зеленых" баров ? нужно чтобы выявлять такие вот "пилы"


По-всякому можно.

Какие-такие пилы ...

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