Не исполняется Buy и Sell

 
Это у меня одного такого или как? Не исполняется Buy и Sell ни на одном советнике. Может какие проблемы с билдом MT? Уже голову сломал-ничего не пойму. Подскажите.
 
 

Я похож на дол&&&ба???  НА вот, попробуй.

//+------------------------------------------------------------------+
//| Бульдог.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//---- Параметры ввода
extern double Lots = 0.01;
extern double TakeProfit = 10;
int kperiodstoch=5;
int dperiodstoch=3;
int slowingstoch=3;
int ticket;


//+------------------------------------------------------------------+
//| Инициализация индикаторов и выполнение функций |
//+------------------------------------------------------------------+

//Старт
int start()
{
if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))//<65 && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)<-0.0001)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-TakeProfit*Point,"Stochy",727272,0,Red);
PlaySound("ok.wav");
return(0);
}
}
if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))//>35 && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)>0.0001)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"Stochy",727272,0,Green);
PlaySound("ok.wav");
return(0);
//Конец





Даже звучку вставил. Звучка играет, а ордер не открывает.

 
Hoper23:

Я похож на дол&&&ба???  НА вот, попробуй.

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

Даже звучку вставил. Звучка играет, а ордер не открывает.

Зачем так эмоционально то ? Сразу выложили бы код и писали бы, что все опции включены. Делов-то.

При открытии короткой позы, судя по всему, пропущен 6 параметр ( 0  ?) это стоп-лосс. Соответсвенно тейк берется за стоп и все параметры сдвигаются. Короткая не откроется, поскольку в рыночном ордере стопы не допускаются.

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

Успехов.

 
Во!!! Добрый человек попался, хоть объяснил. Тоесть мне надо вписать StopLoss в строку открытия ордера и инициализировать в начале? Ща попробую.
 

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

//Старт
int start()
{
if(iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_MAIN,0)<65 && iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_SIGNAL,0)<65)// && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)<-0.0001)
{
if( IsTradeContextBusy() ) Sleep(MathRand()+1000);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Stochy",727272,0,Red);
return(0);
}
if(iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_MAIN,0)>35 && iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_SIGNAL,0)>35)// && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)>0.0001)
{
if( IsTradeContextBusy() ) Sleep(MathRand()+1000);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Stochy",727272,0,Green);
return(0);
}
}
//Конец

 
Hoper23:
Тоесть мне надо вписать StopLoss в строку открытия ордера и инициализировать в начале? Ща попробую.

Проверяйте первый вызов ОрдерСенд - у этой функции 11 параметров,

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-TakeProfit*Point,"Stochy",727272,0,Red);

здесь у Вас только 10. Судя по всему после слиппаджа (проскальзывания 3 ) пропущен 0, то есть должно быть так :







ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,   0,  Bid-TakeProfit*Point,"Stochy",727272,0,Red);

Ну, а закрывающие скобки - это само собой. Последний ордер сенд за пределами функции.

 return(0);
 }
 }// <======= Здесь функция старт заканчивается
 
// Этот код исполняться не будет
 if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))//>35 && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)>0.0001)
 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"Stochy",727272,0,Green);  
 PlaySound("ok.wav");
 return(0);


Успехов.

 
Неа, не хотит. Возможно я чета накосячил в скрипте, но как тогда объяснить другой советник который я взял из CODEBASE? В загрузке посмотрите. Он, и еще пол сотни других не хотят открывать ордера. У меня стоит WHC Trader 4 216 bild. Может в этом дело? Когда у меня стоял 214 билд все работало, а ща - ну ни в какую не хотит.
Файлы:
 
Hoper23:

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

//Старт
int start()
{
if(iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_MAIN,0)<65 && iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_SIGNAL,0)<65)// && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)<-0.0001)
{
if( IsTradeContextBusy() ) Sleep(MathRand()+1000);
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Stochy",727272,0,Red);
return(0);
}
if(iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_MAIN,0)>35 && iStochastic(NULL,0,6,2,1,MODE_SMA,0,MODE_SIGNAL,0)>35)// && iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0)>0.0001)
{
if( IsTradeContextBusy() ) Sleep(MathRand()+1000);
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Stochy",727272,0,Green);
return(0);
}
}
//Конец

Так может не получиться - у некоторых ДЦ не позволяется выставление стоп-лосс в рыночном ордере. Вроде в 216 билде это обещали сделать стандартом - сам не проверял поскольку мой ДЦ это делать не позволяет и даже в тестере генерится ошибка 130 пришлось уже давно переписать функции выставления ордеров. Сначала ставлю рыночный, потом "рихтую" стоп и профит.

Успехов.

 
Hoper23:
Неа, не хотит. Возможно я чета накосячил в скрипте, но как тогда объяснить другой советник который я взял из CODEBASE? В загрузке посмотрите. Он, и еще пол сотни других не хотят открывать ордера. У меня стоит WHC Trader 4 216 bild. Может в этом дело? Когда у меня стоял 214 билд все работало, а ща - ну ни в какую не хотит.

Тогда точно дело в наличии стоп-лоссов в рыночных ордерах. Ща пороюсь в архивах.

 

Еще слышал где-то что у меня не успевает исполниться строка, как наступает след. тик. Предлогали вставить refresh. Пытался, но чета нифига не помогло. Убрал-ничего не изменилось.

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