Как кодировать? - страница 98

 

Как заставить индикатор работать на другом индикаторе?

Если перебросить базовую скользящую среднюю (включенную как индикатор в MT4) на другой индикатор, то можно рассчитать MA индикатора, но как изменить пользовательский индикатор таким образом, чтобы его можно было перебросить на другой индикатор?

 

при открытии бара

Здравствуйте,

Я хочу запускать часть кода только при создании нового бара (при открытии бара).

У кого-нибудь есть фрагмент кода для чего-то подобного?

Спасибо

 

почему мой индикатор плохо работает????

#property copyright "沈欣"

#property link "shenxinon@126.com"

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 SteelBlue

//#property indicator_minimum -0.01

//#property indicator_maximum 0.01

//---- входные параметры

extern int SMA1=12;

extern int SMA2=72;

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

double ExtMapBuffer1[];

//---- 自定义区

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

//| Функция инициализации пользовательского индикатора |

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

int init()

{

//---- индикаторы

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

string sName="Индикатор RAVI";

IndicatorShortName("Индикатор RAVI("+SMA1+", "+SMA2+")");

//----

return(0);

}

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

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

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

int deinit()

{

//----

//----

return(0);

}

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

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

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

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars<0) return(-1);// если произошла ошибка, то выход и возврат -1

if(counted_bars>0) counted_bars--;

int pos = Bars-counted_bars;

double sma1,sma2,r;

while(pos>=0)

{

sma1=iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,pos);

sma2=iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,pos);

r=((sma1-sma2)/sma2)*10000;

//Alert("r=",r);

ExtMapBuffer1[pos]=r;

pos--;

}

return(0);

 

...

Я понял.

 
diffused:
Привет,

Я хочу запускать часть кода только при создании нового бара (при открытии бара).

У кого-нибудь есть фрагмент кода для чего-то подобного?

Будь здоров

if (Volume[0] == 1)

{DO...}

Big Be

 

тренд Конверт EA

Ола

Я учу mql.

Я читал Использование технических индикаторов - Простые программы на MQL4 - Самоучитель MQL4, но не нашел ничего похожего.

Можно ли раскрасить отдельный бар? Например, при тестировании вашего советника вы можете раскрасить бар входа...

На metatrader я не вижу ни одной системы watch, например, чтобы увидеть поле моего переменного массива, который есть во всех компиляторах C.

Я хочу сделать эту глупую систему:

Когда цена пробивает и закрывает трендовое развитие (смотрите на картинке, где желтый кружок), я открываю алерт и выделяю цветом брейкбар.

Но моя проблема в том, что я читаю только индикатор тренда вверх, а не на коротком периоде, почему?

double maxprec= iHigh(NULL, PERIOD_M5,1);

double minprec=iLow(NULL, PERIOD_M5,1);

double chiusura2 = iClose(NULL,PERIOD_M15 ,2);

double chiusura = iClose(NULL,PERIOD_M15 ,1);

double chiu2 = iClose(NULL,PERIOD_M5 ,2);

double chiu = iClose(NULL,PERIOD_M5 ,1);

double apertura = iOpen(NULL,PERIOD_M15 ,0)

string rottura [3] = {" Nulla"," ROTTO"};

envelope15_1=iCustom(NULL, PERIOD_M15, "TrendEnvelopes_v1", 5,0,1);// trend envelope

if( chiusura2 > envelope15_2 && chiusura < envelope15_2 && apertura <= envelope15_2)

{

rot=1;

Alert ( " ha rotto SH M15");

}

else

rot=0;

Comment( ""\nBreak Enveolpe M 5= ", rottura[rot2],

"\nBrerak Enveolpe M 15= ", rottura[rot]

); // Alert
Файлы:
eur_1.jpg  101 kb
 

Правильная ли это формула

правильная ли это формула для расчета стоимости пункта для кросса eur/chf:

(1/(eur/chf))*10*(eur/us)

пункт равен .0001.

Правильная формула выше?

 
lizmerrill:
правильная ли это формула для расчета стоимости пункта для кросса eur/chf:

(1/(eur/chf))*10*(eur/us)

один пункт равен 0,0001.

Правильная формула выше?

Используйте этот код:

pipvalue=MarketInfo("EURCHF",MODE_TICKVALUE);

Надеюсь, это поможет

 

Нужен код для остановки открытия позиций через определенное время

Я уже видел все сообщения в этом разделе и провел исследование по всему форуму, используя инструмент поиска Google в верхней части форума, но то, что я нашел, не совсем то, что я ищу.

Мне нужен код, который я должен внедрить в мой советник, который останавливает открытие новой позиции после определенного часа, например, после 15 GMT. Этот параметр должен быть настройкой, которую я могу изменить с панели пользователя.

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

Открывать с X часов до Y часов

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

С уважением,

 
mauro269:
Я уже видел все сообщения в этом разделе и провел исследование по всему форуму, используя инструмент поиска google в верхней части форума, но то, что я нашел, не совсем то, что я ищу.

Мне нужен код, который я должен внедрить в мой советник, который останавливает открытие новой позиции после определенного часа, например, после 15 GMT. Этот параметр должен быть настройкой, которую я могу изменить с панели пользователя.

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

Открывать с X часов до Y часов

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

С уважением,

Вот как я делаю:

extern bool Use.Time.Filter = false;

extern string Server.Time.To.Start = "08:00";

extern string Server.Time.To.Stop = "16:00";
start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start);

end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);

if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);

Надеюсь, это поможет.

FerruFx

Причина обращения: