Ответ
 
Опции темы
Старый 15.01.2015, 21:10   #3401 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от gold_traid Посмотреть сообщение
PriceHigh = iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 0 , 0);
PriceLow = iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 2 , 1);
if (OrdersTotal()==0 && PriceHigh>PriceLow && CountBuy()==0 && CountSell() ==0);
{
SL = NormalizeDouble(PriceHigh- aStop_Loss * Point, Digits);
TP = NormalizeDouble(PriceHigh + aTake_Profit *Point,Digits);
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0,com ent,Magic,0,Red);
Если уже открыты ордера, и находятся в рынке (OrdersTotal()==0), то не должен открывать, как минимум.
Где ещё есть места отвечающие за "СИГНАЛ" по открытию?
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 21:13   #3402 (permalink)
Новичок форума
 
Аватар для gold_traid
 
Регистрация: 24.08.2012
Сообщений: 108
Репутация: 28
gold_traid
Сказал(а) спасибо: 28
Поблагодарили 27 раз(а) в 17 сообщениях
Поинты: 24
Отправить сообщение для gold_traid с помощью ICQ
Сообщение от _SERG_ Посмотреть сообщение
Если уже открыты ордера, и находятся в рынке (OrdersTotal()==0), то не должен открывать, как минимум.
Где ещё есть места отвечающие за "СИГНАЛ" по открытию?
так в том то и дело что на каждой свече открывает
gold_traid вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 21:15   #3403 (permalink)
Новичок форума
 
Аватар для gold_traid
 
Регистрация: 24.08.2012
Сообщений: 108
Репутация: 28
gold_traid
Сказал(а) спасибо: 28
Поблагодарили 27 раз(а) в 17 сообщениях
Поинты: 24
Отправить сообщение для gold_traid с помощью ICQ
Сообщение от gold_traid Посмотреть сообщение
так в том то и дело что на каждой свече открывает
total=OrdersTotal();
if(total<1);
m0=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 0 , 0);
m1=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 2 , 1);
if(m0>m1)
{

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+St opLoss*Point,Bid-TakeProfit*Point,Magic,0,Red);

if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Sell order opened : ",OrderOpenPrice());
}
else Print("Error opening Sell order : ",GetLastError());
return;
}



if(m0<m1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask+Sto pLoss*Point,Ask-TakeProfit*Point,Magic,0,Blue);

if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return;
}
for (cnt=0;cnt;

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol());
{
if(OrderType()==OP_BUY)
{

if(m0>m1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // close position
return; // exit
gold_traid вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 21:21   #3404 (permalink)
Новичок форума
 
Аватар для gold_traid
 
Регистрация: 24.08.2012
Сообщений: 108
Репутация: 28
gold_traid
Сказал(а) спасибо: 28
Поблагодарили 27 раз(а) в 17 сообщениях
Поинты: 24
Отправить сообщение для gold_traid с помощью ICQ
Сообщение от _SERG_ Посмотреть сообщение
Если уже открыты ордера, и находятся в рынке (OrdersTotal()==0), то не должен открывать, как минимум.
Где ещё есть места отвечающие за "СИГНАЛ" по открытию?
вот чего журнал пишет
2015.01.16 02:20:00.669 2013.02.04 00:30 100pipsScalper EURUSD,M5: open #7 buy 0.10 EURUSD at 1.3652 ok
2015.01.16 02:20:00.603 2013.02.04 00:25 100pipsScalper EURUSD,M5: open #6 buy 0.10 EURUSD at 1.3654 ok
2015.01.16 02:20:00.537 2013.02.04 00:20 100pipsScalper EURUSD,M5: open #5 buy 0.10 EURUSD at 1.3654 ok
2015.01.16 02:20:00.471 2013.02.04 00:15 100pipsScalper EURUSD,M5: open #4 buy 0.10 EURUSD at 1.3651 ok
2015.01.16 02:20:00.405 2013.02.04 00:10 100pipsScalper EURUSD,M5: open #3 buy 0.10 EURUSD at 1.3650 ok
2015.01.16 02:20:00.339 2013.02.04 00:05 100pipsScalper EURUSD,M5: open #2 buy 0.10 EURUSD at 1.3648 ok
gold_traid вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 21:22   #3405 (permalink)
Новичок форума
 
Аватар для gold_traid
 
Регистрация: 24.08.2012
Сообщений: 108
Репутация: 28
gold_traid
Сказал(а) спасибо: 28
Поблагодарили 27 раз(а) в 17 сообщениях
Поинты: 24
Отправить сообщение для gold_traid с помощью ICQ
Сообщение от gold_traid Посмотреть сообщение
вот чего журнал пишет
2015.01.16 02:20:00.669 2013.02.04 00:30 100pipsScalper EURUSD,M5: open #7 buy 0.10 EURUSD at 1.3652 ok
2015.01.16 02:20:00.603 2013.02.04 00:25 100pipsScalper EURUSD,M5: open #6 buy 0.10 EURUSD at 1.3654 ok
2015.01.16 02:20:00.537 2013.02.04 00:20 100pipsScalper EURUSD,M5: open #5 buy 0.10 EURUSD at 1.3654 ok
2015.01.16 02:20:00.471 2013.02.04 00:15 100pipsScalper EURUSD,M5: open #4 buy 0.10 EURUSD at 1.3651 ok
2015.01.16 02:20:00.405 2013.02.04 00:10 100pipsScalper EURUSD,M5: open #3 buy 0.10 EURUSD at 1.3650 ok
2015.01.16 02:20:00.339 2013.02.04 00:05 100pipsScalper EURUSD,M5: open #2 buy 0.10 EURUSD at 1.3648 ok
получается что открывается на каждом тике
почему ни как не могу понять
gold_traid вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 21:31   #3406 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от gold_traid Посмотреть сообщение
так в том то и дело что на каждой свече открывает
Вывод: Условие не отрабатывает.
Способ решения: Запустить в отладчике, и посмотреть, что на самом деле происходит. (А не в собственном воображении.)
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
gold_traid (15.01.2015)
Старый 15.01.2015, 22:02   #3407 (permalink)
Новичок форума
 
Аватар для gold_traid
 
Регистрация: 24.08.2012
Сообщений: 108
Репутация: 28
gold_traid
Сказал(а) спасибо: 28
Поблагодарили 27 раз(а) в 17 сообщениях
Поинты: 24
Отправить сообщение для gold_traid с помощью ICQ
Сообщение от _SERG_ Посмотреть сообщение
Вывод: Условие не отрабатывает.
Способ решения: Запустить в отладчике, и посмотреть, что на самом деле происходит. (А не в собственном воображении.)
выяснилось в чем дело а дело в том что сигналом слкжит изменение цвета индикатора а не его значение на предидущих барах вот тока как описать это условие
gold_traid вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 22:06   #3408 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,648
Репутация: 8545
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,541 раз(а) в 1,562 сообщениях
Поинты: 802

Скрытый текст

Сообщение от gold_traid Посмотреть сообщение
total=OrdersTotal();
if(total<1);
m0=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 0 , 0);
m1=iCustom(Symbol() ,0, "100pipstodayscalper", BPERIOD , aTake_Profit , aStop_Loss , 2 , 1);
if(m0>m1)
{

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,Magic,0,Red);

if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice());
}
else Print("Error opening Sell order : ",GetLastError());
return;
}



if(m0<m1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask+StopLoss*Point,Ask-TakeProfit*Point,Magic,0,Blue);

if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return;
}
for (cnt=0;cnt;

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol());
{
if(OrderType()==OP_BUY)
{

if(m0>m1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return; // exit
[свернуть]


У Вас не отрабатывает условие на весь код: if(total<1);
Во первых: после закрытой скобки - убрать точку с запятой.
Во вторых: это условие в таком виде повлияет только на первую строчку идущую после него, т.е. на m0=...., а все остальные строки его игнорируют. Откройте скобку после условия: if(total<1){ и соответственно, закрыть в конце кода, перед return(0);. Пробуйте.

Последний раз редактировалось mobidik; 15.01.2015 в 22:08.
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 22:09   #3409 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от gold_traid Посмотреть сообщение
выяснилось в чем дело а дело в том что сигналом слкжит изменение цвета индикатора а не его значение на предидущих барах вот тока как описать это условие
Скрипнем мозгом, и посмотрим туда, где за цвет индикатор отвечает.
А может за численное значение, которое за смену цвет отвечает.
Ну короче, цифра какая была, а какая стала?
(....без твоего участия, там ни чего не происходит. )
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.01.2015, 22:16   #3410 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от mobidik Посмотреть сообщение

Скрытый текст



[свернуть]


У Вас не отрабатывает условие на весь код: if(total<1);
Во первых: после закрытой скобки - убрать точку с запятой.
Во вторых: это условие в таком виде повлияет только на первую строчку идущую после него, т.е. на m0=...., а все остальные строки его игнорируют. Откройте скобку после условия: if(total<1){ и соответственно, закрыть в конце кода, перед return(0);. Пробуйте.
Это начиналось с Этого:
Цитата:
if (OrdersTotal()==0 && PriceHigh>PriceLow && CountBuy()==0 && CountSell() ==0);
{
SL = NormalizeDouble(PriceHigh- aStop_Loss * Point, Digits);
TP = NormalizeDouble(PriceHigh + aTake_Profit *Point,Digits);
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0,com ent,Magic,0,Red);
....
а дальше как получилось. 3403 я пропустил. УВы.

Последний раз редактировалось _SERG_; 15.01.2015 в 22:19.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.01.2015, 03:36   #3411 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Сообщение от gold_traid Посмотреть сообщение
Всем доброго времени суток!У меня советник открывает ордер на каждом баре как это поправить?
PHP код:
if(pos.exists &&
         ((
iBarShift(_SymbolPeriodTFpos.last_deal_timefalse) <= 0) ||
         (
iBarShift(_SymbolPeriodTFpos.last_deal_timefalse) <= barsToEnter && barsToEnter 0))
      ) return(
ENTER_NONE); 
По человечи:
Если позиция открыта и
((последняя сделка была открыта на текущей свече периода PeriodTF)
или
(свеча с последней сделкой на периоде PeriodTF меньше чем кол-во баров для входа и это кол-во больше 0)),
то входа нет
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.01.2015, 19:18   #3412 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547

По умолчанию Помогите плиз - найти ошибку в коде???


уважаемые профи проггеры MQL4, помогите плиз найти ошибку в коде трала, не работает он у меня, цепляю как обычно к советнику, и он у мня не работает, гляньте свежим взглядом что в коде неверно, или лишнее может, брал его из готового советника... мне нужен код в старом билде, например 229, новый пока не освоил, извиняйте, разрабы слишком быстро все меняют, не успеваю гнаться за ними...
ЗАРАНЕЕ СПАСИБО!

PHP код:
//-----------------------------------------------------------------
void Tral()
{
  for(
int i=0i<OrdersTotal(); i++) { 
    if(!(
OrderSelect(iSELECT_BY_POSMODE_TRADES))) continue; 
    if(
OrderSymbol() != Symbol()) continue;        

    if(
OrderType()==OP_BUY) { 
      if(
Bid-OrderOpenPrice()>TrailingStop*Point&&Bid>=OrderOpenPrice()+TrailingStart*Point) { 
        if(
OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point
          
OrderModify(OrderTicket(), OrderOpenPrice(),Bid-TrailingStop*PointOrderTakeProfit(), 0CLR_NONE); 
      } 
    } 

   if(
OrderType()==OP_SELL) { 
     if(
OrderOpenPrice()-Ask>TrailingStop*Point&& Ask<=OrderOpenPrice()-TrailingStart*Point) { 
        if(
OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point
         
OrderModify(OrderTicket(), OrderOpenPrice(),Ask+TrailingStop*PointOrderTakeProfit(), 0CLR_NONE); 
      }
    } 
  } 
  
}
//------------------------------------------------ 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 17.01.2015 в 19:26.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.01.2015, 20:19   #3413 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от Milord Посмотреть сообщение
уважаемые профи проггеры MQL4, помогите плиз найти ошибку в коде трала, не работает он у меня, цепляю как обычно к советнику, и он у мня не работает, гляньте свежим взглядом что в коде неверно, или лишнее может, брал его из готового советника... мне нужен код в старом билде, например 229, новый пока не освоил, извиняйте, разрабы слишком быстро все меняют, не успеваю гнаться за ними...
ЗАРАНЕЕ СПАСИБО!
Если это трейлинг, то проверка должна быть для Buy
if(Bid - OrderStopLoss() > чегото*_point ) а у тебя цена открытия ордера

ps. И отличие от старых принципов в том, что надо обязательно контролировать выполнение хотя-бы так
if(OrderModify(...........) == false) Alert();
А по хорошему, то надо приспособить обработку ошибок и в случае неудачного выполнения, повторить модификацию ордера...

Последний раз редактировалось AlexeyVik; 17.01.2015 в 20:24.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (17.01.2015)
Старый 17.01.2015, 20:35   #3414 (permalink)
Активный участник
 
Аватар для SlavaR
 
Регистрация: 25.05.2010
Адрес: Москва
Сообщений: 81
Репутация: 34
SlavaR
Сказал(а) спасибо: 1,083
Поблагодарили 33 раз(а) в 22 сообщениях
Поинты: 29
Отправить сообщение для SlavaR с помощью ICQ Отправить сообщение для SlavaR с помощью Skype™
Добрый день.
Требуется чтобы советник от начала своей работы и до выключения помнил состояние баланса и не менял его на всём протяжении работы .
Подскажите пожалуйста как написать эту часть кода? Ничего в голову не приходит. (пользуюсь ещё старым кодом)
SlavaR вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.01.2015, 21:41   #3415 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от SlavaR Посмотреть сообщение
Добрый день.
Требуется чтобы советник от начала своей работы и до выключения помнил состояние баланса и не менял его на всём протяжении работы .
Подскажите пожалуйста как написать эту часть кода? Ничего в голову не приходит. (пользуюсь ещё старым кодом)
Ну так объяви переменную на глобальном уровне и присвой в init() ей значение AccountBalance()
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
SlavaR (17.01.2015)
Старый 18.01.2015, 00:55   #3416 (permalink)
Активный участник
 
Аватар для SlavaR
 
Регистрация: 25.05.2010
Адрес: Москва
Сообщений: 81
Репутация: 34
SlavaR
Сказал(а) спасибо: 1,083
Поблагодарили 33 раз(а) в 22 сообщениях
Поинты: 29
Отправить сообщение для SlavaR с помощью ICQ Отправить сообщение для SlavaR с помощью Skype™
Сообщение от AlexeyVik Посмотреть сообщение
Ну так объяви переменную на глобальном уровне и присвой в init() ей значение AccountBalance()
Благодарю. Всё получилось.
SlavaR вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2015, 04:26   #3417 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от AlexeyVik Посмотреть сообщение
ps. И отличие от старых принципов в том, что надо обязательно контролировать выполнение хотя-бы так
if(OrderModify(...........) == false) Alert();
Да-да, конечно!
А еще надо так:
if(a>b==false) alert();

Не парь человеку мозги! Если функция возващает булево значение true/false, то ничего делать не надо:
if(OrDerModify(...)) alert();

Такая конструкция не выдает никаких предупреждений, даже если включена строгая проверка #property strict
что является логичным и грамотным
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (18.01.2015), Milord (18.01.2015)
Старый 18.01.2015, 06:30   #3418 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Сообщение от ansol Посмотреть сообщение
Да-да, конечно!
А еще надо так:
if(a>b==false) alert();

Не парь человеку мозги! Если функция возващает булево значение true/false, то ничего делать не надо:
if(OrDerModify(...)) alert();

Такая конструкция не выдает никаких предупреждений, даже если включена строгая проверка #property strict
что является логичным и грамотным
Ну нет у меня желания ограничивать тебя в чём-либо. Делай как тебе нравится, но последуй своему совету: "Не парь людям мозги" и не выдирай из текста только то что удобно извратить. Если ты хочешь слышать оповещение об удачном выполнении команды, то ты всё правильно написал. Только не думаешь о том что если по какой-то причине команда не будет выполнена то, не находясь у монитора, ты никогда не услышишь предупреждения.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2015, 06:37   #3419 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от AlexeyVik Посмотреть сообщение
Ну нет у меня желания ограничивать тебя в чём-либо. Делай как тебе нравится, но последуй своему совету: "Не парь людям мозги" и не выдирай из текста только то что удобно извратить. Если ты хочешь слышать оповещение об удачном выполнении команды, то ты всё правильно написал. Только не думаешь о том что если по какой-то причине команда не будет выполнена то, не находясь у монитора, ты никогда не услышишь предупреждения.
Я, возможно, неудачно выразился, тогда уточню/поправлюсь:
Данная конструкция будет работать безо вских "=="
Если интересует значение true, то пишем
if(OrderModify(...))
Если false, то
if(!OrderModify(...))
А идиотская конструкция if(OrderModify == true или false) не нужна.
Так понятней?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2015, 06:39   #3420 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от AlexeyVik Посмотреть сообщение
Если это трейлинг, то проверка должна быть для Buy
if(Bid - OrderStopLoss() > чегото*_point ) а у тебя цена открытия ордера

ps. И отличие от старых принципов в том, что надо обязательно контролировать выполнение хотя-бы так
if(OrderModify(...........) == false) Alert();
А по хорошему, то надо приспособить обработку ошибок и в случае неудачного выполнения, повторить модификацию ордера...
давайте разберем ошибки кода хотя бы без проверок на ошибки, чтобы было понятнее, у мня вопрос - зачем сравнивать как вы пишете
if(Bid-OrderStopLoss>TrailigStart*Point)

ведь при открытии ордера я могу вапще убрать StopLoss=0
и второй момент, трал начинает работу когда цена идет в нашу сторону, то есть разница между текущей ценой Bid и ценой открытия ордера дает профит, я прав???? но где тогда ошибки в коде, и почему трал не работает..?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 08:14. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO