Ребята, посмотрите пожалуйста мою программу. Чего в ней не хватает? или что-то лишнее есть? Как это исправить?Еще не могу определиться какие значения присвоить стоплосу и тейкпрофиту. Объясните мне.

 
#property copyright "Lazorenko Natalia"


extern bool Buy=false; //для открытия ордера на покупку
extern bool Sell=false; //для открытия ордера на продажу
extern int takeprofit=100;
extern double Lots=0.1;
extern int stoploss=100;
extern double TrailingStop=35.0;

double SL,TP;
double LOT;


//datetime LastTradeTime; // время последней торговой операции//

//--------------------------------------------------------------------
int start()
{
double upper_threshold=70; //верхний порог
double lower_threshold=30; // нижний порог
double price=big; //цена
int k;

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

if (Abs(flag)=1)
{if(Check()==false)
{return;}
else{
if (flag>0)
{
TP = Ask + takeprofit*Point;
SL = Ask - stoploss*Point;
LOT = LOT(risk,1);
k=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,LS,TP,NULL, Magic,0,CLR_NONE);
if (k<0){Print("Ошибка открытия BUY #",GetLastError());return(0);}
Sleep(1000);
}
if (flag<0)
{
TP = Bid - takeprofit*Point;
SL = Bid + stoploss*Point;
LOT = LOT(risk,1);
k=OrderSend(Symbol(),OP_SELL,0.1,Ask,2,SL,TP,NULL, Magic,0,CLR_NONE);
if (k<0){Print("Ошибка открытия BUY #",GetLastError());return(0);}
Sleep(1000);
}
if (k==-1) //неудачная покупка OK
{
ShowERROR(error,0,0);
}
}
}
return;
}
//--------------------------------------------------------------------
void ShowERROR(int Ticket,double SL,double TP)
{
int err=GetLastError();
switch ( err )
{
case 1: return;
case 2: Alert("Нет связи с торговым сервером " ,Ticket," ",Symbol());return;
case 3: Alert("Error неправильные параметры Ticket ", Ticket," ",Symbol());return;
case 130: Alert("Error близкие стопы Ticket ", Ticket," ",Symbol());return;
case 134: Alert("Недостаточно денег ", Ticket," ",Symbol());return;
case 146: Alert("Error Подсистема торговли занята ", Ticket," ",Symbol());return;
case 129: Alert("Error Неправильная цена ", Ticket," ",Symbol());return;
case 131: Alert("Error Неправильный объем ", Ticket," ",Symbol());return;
case 4051:Alert("Error Недопустимое значение параметра функции ",Ticket," ",Symbol());return;
case 4105:Alert("Error Ни один ордер не выбран ", Ticket," ",Symbol());return;
case 4063:Alert("Error Ожидается параметр типа integer ", Ticket," ",Symbol());return;
case 4200:Alert("Error Объект уже существует ", Ticket," ",Symbol());return;
default: Alert("Error ",err," Ticket ", Ticket," ",Symbol());return;
}
}
//--------------------------------------------------------------------
bool Check() // Пользов. функция проверки на наличие средств на счету
{
if (IsDemo()==true)
return(true);
}
 

Ребята, посмотрите пожалуйста мою программу. Чего в ней не хватает? или что-то лишнее есть? Как это исправить?Еще не могу определиться какие значения присвоить стоплосу и тейкпрофиту. Объясните мне.

что надо конкретно?

 
Тут много ошибок .... Если хотите разобраться вот скайп voldemar227
 
Окей!
VOLDEMAR:
Тут много ошибок .... Если хотите разобраться вот скайп voldemar227

Да, ошибок у меня предостаточно.

Со скайпом проблема. У меня линукс, я не знаю как установить ((

А так бы с радостью) Возможен ли другой вариант?

 
sergeev:

что надо конкретно?


Посмотреть ошибки, сказать где ошибки, как их исправить.

Просто может я бред написала. У меня туго с программированием. ((

 

Да уж....

Что такое big?

double price=big; //цена

Явно ошибка. Для вставки кода используйте кнопку SRC.

Лишнее bool Check(), void ShowERROR советнику пока явно не до этого... А не хватает советнику Ваших знаний. Стоплосс и тейкпрофит выбираются исходя из Вашей стратегии. Ну крайний случай их можно подобрать в оптимизаторе...

 
funnynatka:


Посмотреть ошибки, сказать где ошибки, как их исправить.

Просто может я бред написала. У меня туго с программированием. ((


о боже....
 

А вообще ошибок наверно больше чем строк кода. На большинство из них укажет попытка компиляции советника

 
sergeev:

о боже....

да, все печально
 

Осталась одна ошибка, связанная с переменной risk

#property copyright "Lazorenko Natalia"


extern bool Buy=false; //??? ???????? ?????? ?? ???????
extern bool Sell=false; //??? ???????? ?????? ?? ???????
extern int takeprofit=100;
extern double Lots=0.1;
extern int stoploss=100;
extern double TrailingStop=35.0;
extern int Magic=20110510;
double SL,TP;
double LOT;


//datetime LastTradeTime; // ????? ????????? ???????? ????????//

//--------------------------------------------------------------------
int start()
{
double upper_threshold=70; //??????? ?????
double lower_threshold=30; // ?????? ?????
double price=Bid; //????
int k;
int flag=0;

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

if (Abs(flag)=1)
        {if(Check()==false)
                {return;}
         else{
                 if (flag>0)
                        {
                         TP = Ask + takeprofit*Point;
                         SL = Ask - stoploss*Point;
                         LOT = LOT(risk,1);
                         k=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,SL,TP,NULL, Magic,0,CLR_NONE);
                         if (k<0){Print("?????? ???????? BUY #",GetLastError());return(0);}
                         Sleep(1000);
                        }
                 if (flag<0)
{
                         TP = Bid - takeprofit*Point;
                         SL = Bid + stoploss*Point;
                         LOT = LOT(risk,1);
                         k=OrderSend(Symbol(),OP_SELL,0.1,Ask,2,SL,TP,NULL, Magic,0,CLR_NONE);
                         if (k<0){Print("?????? ???????? BUY #",GetLastError());return(0);}
                         Sleep(1000);
                        }
if (k==-1) //????????? ??????? OK
                        {
                         ShowERROR(k,0,0);
                        }
                }
}
return;
}
        
//--------------------------------------------------------------------
void ShowERROR(int Ticket,double SL,double TP)
{
int err=GetLastError();
switch ( err )
{
case 1: return;
case 2: Alert("??? ????? ? ???????? ???????? " ,Ticket," ",Symbol());return;
case 3: Alert("Error ???????????? ????????? Ticket ", Ticket," ",Symbol());return;
case 130: Alert("Error ??????? ????? Ticket ", Ticket," ",Symbol());return;
case 134: Alert("???????????? ????? ", Ticket," ",Symbol());return;
case 146: Alert("Error ?????????? ???????? ?????? ", Ticket," ",Symbol());return;
case 129: Alert("Error ???????????? ???? ", Ticket," ",Symbol());return;
case 131: Alert("Error ???????????? ????? ", Ticket," ",Symbol());return;
case 4051:Alert("Error ???????????? ???????? ????????? ??????? ",Ticket," ",Symbol());return;
case 4105:Alert("Error ?? ???? ????? ?? ?????? ", Ticket," ",Symbol());return;
case 4063:Alert("Error ????????? ???????? ???? integer ", Ticket," ",Symbol());return;
case 4200:Alert("Error ?????? ??? ?????????? ", Ticket," ",Symbol());return;
default: Alert("Error ",err," Ticket ", Ticket," ",Symbol());return;
}
}
//--------------------------------------------------------------------
bool Check() // ???????. ??????? ???????? ?? ??????? ??????? ?? ?????
{
if (IsDemo()==true)
return(true);
}
 
funnynatka:

да, все печально

Вы просто не с того начали, начните с учебника https://book.mql4.com/ru/, потом рассмотрите какой-нибудь пример простенького рабочего советника. Сложного тут нет ничего, но необходимы некоторые знания которые не удастся компенсировать желанием, жаждой быстрого профита и т.д.
Причина обращения: