[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 974

 
rustein:
скажите как правильно рассчитать суму прибыли в процентах от баланса только определённых позиции с одинаковым магиком ?


  Что значит правильно или не правильно? Первое, что сходу пришло: В цикле делаете выборку по ордерам с заданным магиком накапливая
  OrderProfit () ордеров в переменной, допустим Summ. Далее после цикла считаем процент от баланса: Summ_procent = Summ*100/AccountBalance ();

  Вот и все. 

 

extern int Period_MA = 21;

bool Fact_Up = true;

bool Fact_Dn = true;

int start()

{
double MA;

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);
if (Bid > MA && Fact_Up == true)

{
Fact_Dn = true;

Fact_Up = false;

Alert("Цена находится выше MA(",Period_MA,").");
}
if (Bid < MA && Fact_Dn == true)
{
Fact_Up = true;
Fact_Dn = false;
Alert("Цена находится ниже MA(",Period_MA,").");

}
return;
}

вообщем это из учебника, хотел по практиковаться, но в тупик попал,

срабатывает только один раз сообщение только после пересечения,

а как сделать чтобы сообщения были после каждого тика,

чтобы на каждом тике было сообщение что типа "цена выше машки" или "цена ниже машки" ???

не уже ли никто незнает?
 
gheka:


 Учебник по МКЛ4 - Программа на МКЛ4 - Специальные функции (эксперты, скрипты, индикаторы). Прочитайте внимательно - сами справитесь...
 
Roman.:

Учебник по МКЛ4 - Программа на МКЛ4 - Специальные функции (эксперты, скрипты, индикаторы). Прочитайте внимательно - сами справитесь...


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

а мне нужен постоянный сигнал после пересечения,на каждом тике.

разницу между советником и скриптом знаю, у меня код не в скрипте а в советнике

 
gheka:


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

а мне нужен постоянный сигнал после пересечения,на каждом тике.

разницу между советником и скриптом знаю, у меня код не в скрипте а в советнике

extern int Period_MA = 21;


int start() 

{
double MA; 

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); 
if (Bid > MA) 

{




Alert("Цена находится выше MA(",Period_MA,").");
}
if (Bid < MA ) 
{

Alert("Цена находится ниже MA(",Period_MA,").");

}
return; 
}

  Работает?
 
Roman.:



вот тупанул то я, спасибо.
 
gheka:

вот тупанул то я, спасибо.

 Бывает... Сам блуд-ил(у) в 3-х соснах...
 

Согласно рисунка, мы находимся в точке А.

Есть индикатор рисующий стрелки.

Необходимо определить была ли стрелка и куда она смотрит- вверх или вниз.

Для решения этой задачи видится 2 пути:

1) в индикаторе сделать глобальную переменную,назову её FLAG,и чтобы она запоминала последнее значение +1(если стрелка вверх) и -1 (если стрелка вниз)

2)использовать цикл

for (int i=0; i<Bars(); i++);

i-это у нас нулевой бар.

Этот счётчик будет перебирать бары пока не переберёт до числа =Bars-1 (я прав ????)

Но как приделать фуську, чтобы с каждым шагом итерации, то есть при переходе на другой бар высчитывалось есть ли здесь стрелка и куда она смотрит.

Определять наличие стрелки по iCustom ???

 
tuma88:

Согласно рисунка, мы находимся в точке А.

Есть индикатор рисующий стрелки.

Необходимо определить была ли стрелка и куда она смотрит- вверх или вниз.

Для решения этой задачи видится 2 пути:

1) в индикаторе сделать глобальную переменную,назову её FLAG,и чтобы она запоминала последнее значение +1(если стрелка вверх) и -1 (если стрелка вниз)

2)использовать цикл

for (int i=0; i<Bars(); i++);

i-это у нас нулевой бар.

Этот счётчик будет перебирать бары пока не переберёт до числа =Bars-1 (я прав ????)

Но как приделать фуську, чтобы с каждым шагом итерации, то есть при переходе на другой бар высчитывалось есть ли здесь стрелка и куда она смотрит.

Определять наличие стрелки по iCustom ???

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

Это лишь предположение, т.к. без самого индюшонка никто точно вам не скажет.

ЗЫ... Если в индюке всё завязано на ЗЗ, то на текущем баре он вряд ли покажет стрелочку. Только в момент, когда ЗЗ нарисует сей экстремум. А он это делает с запаздыванием. Поэтому на текущем баре вы никогда стрелку не увидите... ИМХО

 
artmedia70:

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

Это лишь предположение, т.к. без самого индюшонка никто точно вам не скажет.


Ну да, про индикаторные буферы это понятно.

А как в цикл всунуть, чтобы проверялся этот буфер?Может быть вот так?

for (int i=0; i<Bars(); i++)

{

signal = iCustom (NULL,0 и так далее )

if (signal>0)

return(signal)

break

}

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