Спрашивайте! - страница 20

 

код лсма

Док,

Вот исходный код для lsma. Спасибо за ваш вклад!

//---- настройки индикатора

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Yellow

#property indicator_color2 Chartreuse

#property indicator_color3 Red

//---- буферы

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

int width;

extern int Rperiod = 34;

extern int Draw4HowLongg = 300; // 500 // 1000

int Draw4HowLong;

int shift;

int i;

int loopbegin;

double sum[];

int length;

double lengthvar;

double tmp ;

double wt[];

int c;

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

//| Пользовательская функция инициализации индикатора |

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

int init()

{

//---- 2 дополнительных буфера используются для подсчета.

IndicatorBuffers(5);

//---- настройки рисования

SetIndexBuffer(2,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(0,ExtMapBuffer3);

SetIndexBuffer(3,sum);

SetIndexBuffer(4,wt);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,3);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,3);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3);

//---- инициализация выполнена

return(0);

}

int start()

{ Draw4HowLong = Bars-Rperiod - 5;

length = Rperiod;

loopbegin = Draw4HowLong - length - 1;

for(shift = loopbegin; shift >= 0; shift--)

{

sum[1] = 0;

for(i = length; i >= 1 ; i--)

{

lengthvar = length + 1;

lengthvar /= 3;

tmp = 0;

tmp = ( i - lengthvar)*Close[length-i+shift];

sum[1]+=tmp;

}

wt[shift] = sum[1]*6/(length*(length+1));

//========== ЦВЕТОВОЕ КОДИРОВАНИЕ ===========================================

ExtMapBuffer3[shift] = wt[shift]; //red

ExtMapBuffer2[shift] = wt[shift]; //зеленый

ExtMapBuffer1[shift] = wt[shift]; //желтый

// for(c=loopbegin;c==shift;c++)

// {

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift+1] = EMPTY_VALUE;

// ObjectCreate("smiley_face", OBJ_ARROW, 0, Time[shift], Low[shift]-Point*20);

// Print("time= ",Time[shift]);

// ObjectSet("smiley_face", OBJPROP_ARROWCODE, 242);

// ObjectSet("smiley_face", OBJPROP_COLOR , Red);

// ObjectSet("smiley_face", OBJPROP_WIDTH , 1);

// ObjectsRedraw();

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift+1] = EMPTY_VALUE; //-1 красный/зеленый плотный

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

}

else

{

ExtMapBuffer1[shift+1]=CLR_NONE;//EMPTY_VALUE;

ExtMapBuffer2[shift+1]=CLR_NONE;//EMPTY_VALUE;

}

}

return(0);

}

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

 

привет, ребята

я хочу знать, как записать этот код в ea

rsi 14

установкапараметров 30 и 70

покупка

-rsi пересекает линию 30 снизу вверх (сначала rsi должен пересечь линию 30 сверху вниз, затем только пересечь линию обратно, где сигнал действителен)

продавать

-rsi пересечение ниже линии 70 сверху (сначала rsi должен пересечься выше линии 70 снизу, затем только пересечь обратно линию, где сигнал действителен)

заранее спасибо

 

как добавить время торговли в советник?

например: Советник не торгует в 14~20 часов и торгует нормально в другое время!

и закрыть все прибыльные сделки, и держать убыточные сделки до 14 часов?

спасибо

(извините за мой плохой английский)

 
quangmach:
Как добавить торговое время в советник?

например: Советник не торгует в 14~20 часов и торгует нормально в другое время!

и закрыть все прибыльные сделки, и держать убыточную торговлю до 14 часов(???).

спасибо

(извините за мой плохой английский)

Я не уверен, но это может быть противоположным с таймфильтром, например, после запуска добавить что-то вроде этого:

if (UseHourTrade){

if ((Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("Time for trade has not come else!");

return(0);

}

}[/CODE]

And in the settings of EA add the following:

[CODE]extern bool UseHourTrade = True;

extern int FromHourTrade = 14;

extern int ToHourTrade = 20;

Но обратите внимание, что время (14 и 20) - это время Metatrader (зависит от брокера). Кроме того, это зависит от таймфрейма, на котором вы используете советника. Например, если закрытие бара будет в 15, то это будет с 15 до 20, независимо от 14 - 20. Зависит от закрытия бара.

 
newdigital:
Я не уверен, но это может быть противоположным с таймфильтром, например, после старта добавить что-то вроде этого:
if (UseHourTrade){

if ((Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("Time for trade has not come else!");

return(0);

}

}[/CODE]

And in the settings of EA add the following:

[CODE]extern bool UseHourTrade = True;

extern int FromHourTrade = 14;

extern int ToHourTrade = 20;
Но учтите, что время (14 и 20) - это время Метатрейдера (зависит от брокера). Кроме того, это зависит от таймфрейма, на котором вы используете советника. Например, если закрытие бара будет в 15, то это будет с 15 до 20, независимо от 14 - 20. Зависит от закрытия бара.

Вау, спасибо большое.

а как насчет

закрыть все прибыльные сделки и держать убыточные до 14 часов?????

возможно ли это???

 

Цвет комментария

Привет...

Есть ли способ изменить цвет комментариев индикатора - тех, которые отображаются в отдельных окнах?

Если да - то как?

спасибо

 
kiwigold:
Привет...

Есть ли способ изменить цвет комментариев индикатора - тех, которые отображаются в отдельных окнах?

Если да - то как?

спасибо

Это можно сделать с помощью ярлыков. Ярлык может быть помещен в любое место выбранного окна, он также может иметь любой шрифт, любой цвет/размер и т.д.. Таким образом, вы можете использовать ярлык как комментарий, поместить его x=20 и y=20 и установить цвет шрифта по своему усмотрению.

 

подсчет баров от прошлого к настоящему

В MQL подсчет баров всегда происходит справа налево (от настоящего к прошлому), правильно?

Как добиться подсчета баров от прошлого к настоящему?

Для простого примера, как я могу пронумеровать каждый бар в данном месяце, где 1 представляет первый бар месяца, а последующие бары увеличиваются вверх?

Спасибо за любую помощь.

Билл (все еще зациклен)

 

создание новых объектов с использованием имени и позиции существующих объектов

Один из моих учебных проектов заключается в настройке tester.tpl, который управляет вариантом отображения графика для тестера стратегий. Я нахожу стиль графика по умолчанию очень сложным для визуализации. Поэтому я создал новый шаблон, а затем построил скрипт для замены всех стрелок на более привлекательные.

Однако я также хотел бы получить информацию в названиях стрелок и отобразить ее в виде текста на графике. Названия стрелок включают в себя такие вещи, как "#62 покупка" или "73 продажа закрытие". Таким образом, вы можете посмотреть на график и увидеть, когда именно происходит вход/выход из конкретной сделки. Я не знаю, почему это не включено по умолчанию в тестер стратегий, как это сделано в других платформах (например, TradeStation).

В любом случае, я хотел бы захватить текст, о котором идет речь, и вставить новые текстовые объекты чуть ниже существующих стрелок на графике. Но я не могу понять, как этого добиться.

Как мне это сделать?

Спасибо

Билл

 
billworld2:
В MQL отсчет баров всегда происходит справа налево (от настоящего к прошлому), правильно?

Как добиться подсчета баров от прошлого к настоящему?

Для простого примера, как я могу пронумеровать каждый бар в данном месяце, где 1 представляет первый бар месяца, а последующие бары увеличиваются вверх?

Спасибо за любую помощь.

Билл (все еще зациклен)

Вам следует ознакомиться с функциями Date и Time, а также использовать функцию iBarShift для получения сдвига первого бара указанного месяца из указанного таймфрейма.