Срочно нужна помощь!!!!

 

Помогите пожалуйста с написанием советник. Не знаю как писать и что с флагами делать.

Обязательные условия:

если индикатор > верхнего порога то flag=1

если < нижнего то flag=-1

иначе flag=0.

Если |flag| >=1, то торгуем

Открываем позиции на покупку

если flag > 0 продажа, если flag < 0, то покупка.

+нужна проверка достаточно ли средств на счете.

Помогите пожалуйста, если можете!!!

 
funnynatka:

.....

+нужна проверка достаточно ли средств на счете.

Помогите пожалуйста, если можете!!!


===============

Ну, примерно так:

int start()
  {
... ... 

if(AccountFreeMarginCheck(Symbol(),OP_BUY,Lots)>0 && 
  AccountFreeMarginCheck(Symbol(),OP_SELL,Lots)>0 
  && IsTradeAllowed()==true ) 
  {   //если размер депозита позволяет нам открыть позицию 
     // и торговый поток свободен    

где Lots - заданный (обычно - в глоб. переменных) размер вашей позиции

==================

А по флагам, - похоже, вам тут проще вообще без флагов обойтись. Просто задавайте нужные условия открытия без всяких флагов...

 

Спасибо )

Преподаватель требует использовать флаги ((

 
funnynatka:

Спасибо )

Преподаватель требует использовать флаги ((


Чтобы флаг активировать, Вам все равно потребуются условия, при которых флаг будет меняться с минуса на плюс и наоборот.
 
funnynatka:

Спасибо )

Преподаватель требует использовать флаги ((


что такое флаг - это некоторая логическая перемнная

bool flag = <условие>

if(flag) <действие покупка>

else <действие продажа>

 

Вот мой вариант. Не знаю на сколько верный.

double upper_threshold=70; //верхний порог
double lower_threshold=30; // нижний порог
double price=big; //запрашиваем цену

if (price > upper_threshold)
{flag=1;}
else
{if (price < lower_threshold)
{flag=-1;}
else flag=0;

}

После уже делать проверку на продажу и покупку. те когда |flag|>=1?????

 
funnynatka:

Вот мой вариант. Не знаю на сколько верный.

double upper_threshold=70; //верхний порог
double lower_threshold=30; // нижний порог
double price=Bid; //запрашиваем цену
if (price > upper_threshold)
{flag=1;}
else
{if (price < lower_threshold)
{flag=-1;}
else flag=0;

}

После уже делать проверку на продажу и покупку. те когда |flag|>=1?????


а так мыслите верно
 
bool Check() // Пользов. функция проверки условий использования
{
if (IsDemo()==true)

return(true);}

я работаю с демо счетом. достаточно ли будет такой проверки на наличие средств на счете?

 
funnynatka:

Вот мой вариант. Не знаю на сколько верный.

double upper_threshold=70; //верхний порог
double lower_threshold=30; // нижний порог
double price=big; //запрашиваем цену

if (price > upper_threshold)
{flag=1;}
else
{if (price < lower_threshold)
{flag=-1;}
else flag=0;

}

После уже делать проверку на продажу и покупку. те когда |flag|>=1?????

|flag|>=1?????

Необходимо какое-то еще условие, чтобы флаг стал > 1.

Например, к вышеприведенным условиям добавить МА на Н4.

Т.е. если выполняются условия Ваши и они не противоречат МА на Н4, то флаг=2 или -2.

 
funnynatka:
bool Check() // Пользов. функция проверки условий использования
{
if (IsDemo()==true)

return(true);}

я работаю с демо счетом. достаточно ли будет такой проверки на наличие средств на счете?


а где, собственно, сама проверка на наличие средств?

есть проверка на то, что торговля идёт на демо, но проверки на наличие средств не видно

 
bool Check() // Пользов. функция проверки условий использования
{
if (IsDemo()==true)

return(true);}


 if(Check()==false)
      return;

я работаю с демо счетом. достаточно ли будет такой проверки на наличие средств на счете?