Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как Вы предложили компилятор ругается.Довел вот до такого варианта.
Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
if(!Ticket>0)Print(GetLastError());
else
{
if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
{
TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
return;
}
}
Не работает.
Как Вы предложили компилятор ругается.Довел вот до такого варианта.
Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
if(!Ticket>0)Print(GetLastError());
else
{
if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
{
TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
return;
}
}
Не работает.
Вот давайте разберём ваш код:
if(!Ticket>0)Print(GetLastError()) --- тикет - это целое число, примерно такое "2354865". Теперь вопрос: может-ли целое число не быть ( !2354865 ) Целое число может быть или больше "> 0" или меньше "< 0" . Это значение bool может быть false/true ( ! )
Далее, вот эта конструкция: if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true) --- она перебирает параметры по тикету, и если вы смотрите конкретный тикет, то нет смысла проверять ни его магик, ни символ, то есть это явно лишнее: if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
И последнее: такие конструкции всё-же лучше брать в скобки, для явного указания очерёдности мат.задач: NormalizeDouble(Bid+(TakeProfit*Point),Digits);
И последнее: такие конструкции всё-же лучше брать в скобки, для явного указания очерёдности мат.задач: NormalizeDouble(Bid+(TakeProfit*Point),Digits);Нет, тут как раз можно без скобок. Вот когда сумму надо умножить, тогда обязательны скобки.
может взять значение времени открытия 0 бара ,с периодом D1 ,+добавить кол-во секунд,
в условие сравнить текущее время, с полученным временем в первой строке
в отложенный ордер можно кол- во сек поставить, время жизни ордера .
Помогите с кодом, советник перебирает все бары, как сделать, чтобы он перебирал последние 200 баров! Спасибо
for (i=1; i<k; i++)
Provider_Signal
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих
Provider_Signal, 2016.11.09 18:38
Как закрыть все ордера в советнике в пятницу вечером ?? Что бы на выходные не оставлять.
Нашел функцию DayOfWeek().
Можно написать проверку
{
//
}
но какую проверку написать на время. Например что бы было 22:00 ?
Provider_Signal
if (Hour()==St_Hour)
Помогите с кодом, советник перебирает все бары, как сделать, чтобы он перебирал последние 200 баров! Спасибо
for (i=1; i<k; i++)
Здравствуйте, помогите.
Если на трёх барах ни один буфер не заполнен, заполняю буфер.
int BarCount=3;
BER=true;
for(int il=1;il<=BarCount;il++)
{
if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
}
if(BER) BufferPointUp[i]=high[i];
Заполняется на всех барах, без разбора.
Но все правильно, если делаю так
Как сделать эту проверку в цикле ?
if (Hour()==St_Hour)