[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 224

 

Хочу, чтобы после закрытия по стоп лосу выводилось сообщение, но в mt4 ничего не происходит.

int init()
{
//----

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

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
string sy="NULL";
int op=-1;
int mn=-1;
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
int start()
{
//----
bool stopl;
stopl = isCloseLastPosByStop(sy,op,mn);
if (stopl == true)
Alert ("последняя сделка закрылась по s/l");
//----
return(0);
}

Файлы:
33.mq4  3 kb
 
неудобно такой код читать, весь текст серый..)
 
 

Уважаемые форумчане! Выкладываю на обозрение индикатор "График баланса". Мне кажется он будет не лишним в отдельном окне - визуальный контроль за изменением собственного баланса в режиме реального времени, контроль прибыльности советника к конечном итоге... Только вот не работает..."Лепил" сам, разбираюсь не очень. Несколько индикаторов получились - с этим что-то никак... Буду признателен за исправления. Что хотел получить - написал. Кромсайте, не стесняйтесь - был бы результат! Возможно кому-то ещё понадобится, вроде бы вещь не лишняя...

Файлы:
 
у тебя на всех барах 1 баланс?) зачем это нужно
 
eddy:
у тебя на всех барах 1 баланс?) зачем это нужно

Видимо я не совсем точно обозначил проблему - может быть точнее будет
AccountEquity( )

вставить. Но это второе. А, главное, хотелось бы наблюдать эти изменения после откр/закр позиций...

Будет что-то типа линии баланса как в тестере, только на реале!?,,,

 
kulon:

Видимо я не совсем точно обозначил проблему - может быть точнее будет
AccountEquity( )
вставить. Но это второе. А, главное, хотелось бы наблюдать эти изменения после откр/закр позиций...


Нужно читать сделок историю и считать баланс на тот момент времени когда была закрыта очередная позиция.

С Эквити немного сложнее, но можно точно так же сделать.

Можно все расчеты привести к стандартному лоту или считать в пунктах

 

Вопрос с окном...

Вставляю в стандартный индикатор строку #property indicator_separate_window - после этого МТ4 не хочет присоединять к фин инструменту. Почему?

 
100yan:

Вопрос с окном...

Вставляю в стандартный индикатор строку #property indicator_separate_window - после этого МТ4 не хочет присоединять к фин инструменту. Почему?


Может просто значения очень маленькие и находятся где-то внизу (за пределами окна)
 
Vinin:

Может просто значения очень маленькие и находятся где-то внизу (за пределами окна)


Но по идее отдельное окно должно быть, хотя и пустое?

Еще - не присоединяет ни индикатор, ни советник....

 
100yan:

Вопрос с окном...

Вставляю в стандартный индикатор строку #property indicator_separate_window - после этого МТ4 не хочет присоединять к фин инструменту. Почему?

Аналоги посмотрите. В частности Equity_simple.mq4