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, которая сдвигать не умеет
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 от машки.
чтобы этот параметр задавался для каждого чарта свой.
получаю ошибку при компиляции
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
бай не модифицирует
заранее благодарен!
прошу прощения!!
...for (ii=OrdersTotal(); ii>0; ii--)
...бай не модифицирует
заранее благодарен!
Нумерация идет с нуля. Подвиньте цикл на 1:
for (ii=OrdersTotal()-1; ii>=0; ii--)
со скобками посмотрите, вы ставите их внутрь функции DoubleToStr, которая сдвигать не умеет
unbalanced left parenthesis
координаты ошибки - это фигурная скобка в самом конце.
но скобка эта стоит нормально.
что же это может быть?
unbalanced left parenthesis
координаты ошибки - это фигурная скобка в самом конце.
но скобка эта стоит нормально.
что же это может быть?
Нумерация идет с нуля. Подвиньте цикл на 1:
for (ii=OrdersTotal()-1; ii>=0; ii--)
пасиб огромное!! проблема была именно в этом.
--------------------------------------------------------------
почему же тогда выскакивает ошибка
15:38:55 0 EURUSD,M1: SELL О Ш Ы Б К А = 1
15:38:55 0 EURUSD,M1: BUY О Ш И Б К А = 1
Это Вам не Паскаль - здесь нет процедур...:-) Одна ф-ия - одно значение...:-)
См. ф-ию GetMarketInfo скрипта закрытия всех ордеров - с использованием массивов можно.
Спасибо.
Здравствуйте! Как можно формализовать и алгоритмизировать частоту чередования "белых" и "зеленых" баров ? нужно чтобы выявлять такие вот "пилы"
Здравствуйте! Как можно формализовать и алгоритмизировать частоту чередования "белых" и "зеленых" баров ? нужно чтобы выявлять такие вот "пилы"
По-всякому можно.
Какие-такие пилы ...