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

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


Спасибо! Сам индикатор работает в отдельном окне...

А что делать если в стандартный советникс вставляешь #property..., а вжурнале - 2011.03.09 18:04:58 Expert 'MACD Sample' is an indicator and cannot be executed

 
Vinin:


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

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

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


Вот чтобы ничего не читать и не считать пусть индикатор сам всё показывает.

Так как насчёт попытаться привести к рабочему виду?

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

Выпадаю из процесса часа на 3-4

 
doon:

Хочу, чтобы после закрытия по стоп лосу выводилось сообщение, но в 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);
}

 
kulon:


Вот чтобы ничего не читать и не считать пусть индикатор сам всё показывает.

Так как насчёт попытаться привести к рабочему виду?

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

Выпадаю из процесса часа на 3-4


Подобные индикаторы и так существуют
 
doon:


Совет уже был Вам дан на предыдущей странице.
 
kulon:

Вот чтобы ничего не читать и не считать пусть индикатор сам всё показывает.

подразумевалось "читать индикатором"
 

Вот код в упрощенной форме

Файлы:
33.ex4  3 kb
 
Vinin:

Подобные индикаторы и так существуют

Ни разу не встречал. Увидеть можно?
 
kulon:

Ни разу не встречал. Увидеть можно?

Посмотри здесь https://www.mql5.com/ru/forum/103774
 

Как сделать, чтобы советник покупал или продавал в определенное время (sleep не использовать)?