Помощь в кодировании - страница 389

 
triip:
Я нашел хорошую скальпинг систему и шаблон, но после установки этой системы она работает так медленно. Может кто-то сможет посмотреть и определить, что может быть причиной.

Шаблон и индикаторы:

1m_alf_scalp.zip

Похоже, что проблема в индикаторе цвета свечи(IT_Candles). Кто-нибудь понимает, что не так с этим кодом, что MT4 работает медленно?

//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

 
triip:
Похоже, что проблема в индикаторе цвета свечи(IT_Candles). Кто-нибудь понимает, что не так с этим кодом, что MT4 работает медленно?
//+------------------------------------------------------------------+//| IT_Candles.mq4

//+------------------------------------------------------------------+

#property indicator_chart_window

#include

#property indicator_buffers 2

extern color UpColor = LimeGreen;

extern color DnColor = Red;

extern int Width = 5;

extern double alpha = 0.09;

double ev=EMPTY_VALUE,Trend,Trigger,ALF;

double Up[];

double Dn[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);

SetIndexBuffer(0,Up);

SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);

SetIndexBuffer(1,Dn);

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1); //---- check for possible errors

if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted

int limit = Bars-counted_bars;

for (int i=limit;i>=0;i--)

{

Up = ev;

Dn = ev;

Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);

Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);

ALF = iCustom(NULL,0,"ALF",0,i+1);

if (Trigger > Trend && Close > Open && Close > ALF)

{

Up = MathMax(Open,Close);

Dn = MathMin(Open,Close);

}

if (Trigger < Trend && Close < Open && Close < ALF)

{

Dn = MathMax(Open,Close);

Up = MathMin(Open,Close);

}

}

}

triip

Проверьте, есть ли у вас в папке indicators индикаторы "Instant_Trendline" и "ALF" (оба необходимы для правильной работы индикатора). Если их нет, извлеките файлы ex4 из этого zip архива и индикатор будет работать нормально (если их там нет, он будет работать очень медленно).

Файлы:
it.gif  75 kb
 
mladen:
triip Проверьте, есть ли у вас индикаторы "Instant_Trendline" и "ALF" в папке indicators (оба необходимы для правильной работы этого индикатора). Если у вас их нет, извлеките файлы ex4 из этого zip архива и индикатор будет работать нормально (если у вас их нет, он будет работать очень медленно).

Да, я поставил на график и другие индикаторы, но как только я добавляю IT_Candles, MT4 тормозит, особенно тормозит переключение таймфреймов...

 
triip:
Да, я поставил на график и другие индикаторы, но как только я добавляю IT_Candles, MT4 тормозит, особенно тормозит переключение таймфреймов...

triip

Они не обязательно должны быть на графике. Но они должны существовать (именно с такими именами) в папке indicators. Самый простой способ проверить - перейти на вкладку experts в терминале и посмотреть, нет ли там какой-нибудь ошибки (как на картинке).

Файлы:
error_2.gif  98 kb
 
mladen:
triip Они не обязательно должны быть на графике. Но они должны существовать (именно под такими именами) в папке indicators. Самый простой способ проверить - перейти на вкладку experts терминала и посмотреть, есть ли там какая-нибудь ошибка (как на картинке).

Ошибок нет.

Но я заметил, что ALF.ex4 не сильно тормозит, а ALF-MTF.ex4 тормозит полностью. У меня есть подпапка в папке indicators, где хранятся все эти упомянутые индикаторы. Может мне стоит переустановить чистый МТ4?

Файлы:
errors.png  27 kb
 
triip:
Ошибок там нет.

Но я заметил, что ALF.ex4 не сильно тормозит, а ALF-MTF.ex4 тормозит полностью. У меня есть подпапка в папке indicators, где хранятся все эти упомянутые индикаторы. Может мне стоит переустановить чистый MT4?

Переместить их из подпапки в основную папку indicators и попробовать.

 
mladen:
Переместите их из подпапки в основную папку индикаторов и попробуйте.

Намного лучше, работает как шарм Спасибо mladen!!!

 
sunshineh:
Привет,

У меня всегда возникают проблемы с написанием текстовых объектов поверх баров на моем графике.

Например

ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl);

ObjectSetText("Xh","1",10,"Tahoma",Orange);

ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl);

ObjectSetText("Xl","1",10,"Tahoma",Orange);

Это работает нормально с текстовыми объектами под моими барами, потому что мой объект шрифта закреплен "на голове" моего текста.

Но если я хочу написать текст над баром, то я не знаю, сколько пунктов занимает мой текст с размером шрифта 10, поэтому он записывается в бары.

Есть также проблема, когда я пишу текст на больших таймфреймах, например, "H1", "D1" или "W1", потому что там я должен изменить расстояние шрифта на высокое или низкое значение.

Я знаю, что могу повернуть текст на 90°, но я не хочу этого делать.

Так знаете ли вы решение этой проблемы?

Для начала попробуйте использовать ATR вместо 1*pips2dbl (так он будет подстраиваться под разные таймфреймы и символы).

Также попробуйте настроить точку привязки (OBJPROP_ANCHOR) текста на ANCHOR_LOWER для текстового объекта, который отображается над максимумом.

 
madopter:
Регулируемыми частями должны быть размер лота и баланс счета, к которому применяется лот. Например, параметры могут быть такими: A = 0.01, B = $5000, или: A = 1.00, B = $10000.

В этом случае необходимо иметь несколько значений параметров, используемых для сравнения.

Вы можете определить параметры следующим образом: extern double accountBalanceA = 5000; и затем использовать эти параметры для сравнения в том коде, который делал то же самое без параметров.

 
mladen:
jbozman

индикатор macd не нуждается в изменении (он будет рассчитывать только 1 или 2 бара в 99.99% случаев).

Индикатор hilo ищет значения очень сложным способом. Лучше использовать какой-нибудь другой индикатор, который выполняет эту задачу гораздо более простым способом (нет необходимости делать его таким сложным).

Привет, Младен. Я искал и не смог найти high/low, который имел бы предыдущий день, неделю и месяц в одном, который рисует простые отрезки линий и не делает беспорядок на графике.

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

Проще говоря, я готов заплатить кому-то (вам) за модификацию этого индикатора.

Я хотел бы добавить "Количество дней", так как этот индикатор строит графики за каждый предыдущий день. На EUR/USD и GBP/USD история моих графиков начинается с 1996 года или даже больше, поэтому он занимает слишком много памяти со всеми этими линиями.

Если вы не нанимаетесь на работу (может быть, кто-то другой согласится?), не слишком ли сложно просто добавить "Количество дней" к текущему графику? Я могу продолжать использовать его, пока не найду другой или не найду кого-то, кто изменит его. Если эта просьба отнимает много времени, я полностью понимаю и благодарю вас за помощь во всем.

jbozman

Файлы:
Причина обращения: