- Убыточных сделок 0!!!!!!
- Почему не компилируется?
- Build 140
Я похож на дол&&&ба??? НА вот, попробуй.
//+------------------------------------------------------------------+
//| Бульдог.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);
//Конец
Даже звучку вставил. Звучка играет, а ордер не открывает.
Я похож на дол&&&ба??? НА вот, попробуй.
//+------------------------------------------------------------------+
Даже звучку вставил. Звучка играет, а ордер не открывает.
Зачем так эмоционально то ? Сразу выложили бы код и писали бы, что все опции включены. Делов-то.
При открытии короткой позы, судя по всему, пропущен 6 параметр ( 0 ?) это стоп-лосс. Соответсвенно тейк берется за стоп и все параметры сдвигаются. Короткая не откроется, поскольку в рыночном ордере стопы не допускаются.
А длинная и не должна открываться поскольку код на ее открытие находится вне пределов функции старт и вообще вне пределов какой-либо функции. Кстати, об этом компилятор предупреждает. После первого ретурна стоит две скобки подряд - предположительно вторую нужно переставить за второй ретурн.
Успехов.
Чета получилось, компилятор не матерится, но на работоспособность еще не проверил.
//Старт
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);
}
}
//Конец
Тоесть мне надо вписать 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);
Успехов.
Чета получилось, компилятор не матерится, но на работоспособность еще не проверил.
//Старт
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 пришлось уже давно переписать функции выставления ордеров. Сначала ставлю рыночный, потом "рихтую" стоп и профит.
Успехов.
Неа, не хотит. Возможно я чета накосячил в скрипте, но как тогда объяснить другой советник который я взял из CODEBASE? В загрузке посмотрите. Он, и еще пол сотни других не хотят открывать ордера. У меня стоит WHC Trader 4 216 bild. Может в этом дело? Когда у меня стоял 214 билд все работало, а ща - ну ни в какую не хотит.
Тогда точно дело в наличии стоп-лоссов в рыночных ордерах. Ща пороюсь в архивах.
Еще слышал где-то что у меня не успевает исполниться строка, как наступает след. тик. Предлогали вставить refresh. Пытался, но чета нифига не помогло. Убрал-ничего не изменилось.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования