[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 221

 
granit77:
Читаем ответ еще раз, медленно и вдумчиво:


Спасибо понял.

Подскажите правильным ли в этом случае будет текст программы

int ticket; // номер тикета
int digits =MarketInfo(Symbol(),MODE_DIGITS); // сохраним количество знаков
double volume =MarketInfo(Symbol(),MODE_MINLOT); // сохраним минимальный лот

ticket=OrderSend(Symbol(),OP_BUY,volume,Ask,2,
0, // SL
0); // TP

OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket, OrderOpenPrice(),
NormalizeDouble(Bid-150*Point,digits), // SL
NormalizeDouble(Bid+150*Point,digits), // TP
0,Blue);

return (0);

 

Каким образом можно сделать, чтобы подключить советник к графику с закрытой сессией и он начал выполнять заложенный алгоритм на первом тике новой открытой сесии? Подскажите пожалуйста.

Я об этом спрашивал здесь https://www.mql5.com/ru/forum/135822, но вопрос остался незамеченным. =(

 
Stan:

Каким образом можно сделать, чтобы подключить советник к графику с закрытой сессией и он начал выполнять заложенный алгоритм на первом тике новой открытой сесии? Подскажите пожалуйста.

Я об этом спрашивал здесь https://www.mql5.com/ru/forum/135822, но вопрос остался незамеченным. =(

Вот только не надо искажать истину. Был дан ответ. Другого не будет, поскольку он абсолютно верен. Прочтите еще раз.
TheXpert:

А ничего. Инициализация советника происходит сразу при накидывании, а стартует он только с появлением тика.

Т.е. вам всего-то надо накинуть советник на график, ждать начала сессии и определиться что делать -- отложку или по рынку. На первом же тике сессии он активизируется.

Правда есть еще такая фигня, что тики идут, а торговля запрещена, но это уже другая песня, тоже решаема


То есть бросаете советник на график при отсутствии торгов, советник инициализируется и мирно висит любое время. С началом торгов первый же тик заставляет советник выполнять свой алгоритм.
 

Ребята не подскажете, почему при запуске тестирования на разных ТФ, результаты тестирования получаются разные, графики, также, естественно, отличаются, тесты по ценам открытия - вот сигнальная часть эксперта... Возможно из-за кривой истории??? (Хотя подобное происходит на разных инструментах и разных брокерах).

...
// ----------------------------Считаем параметры технических индикаторов:------------------------------------
   
   double MA_1 = iMA(Symbol(),trend_period,Period_MA,0,MODE_EMA,PRICE_TYPICAL,1);
   
   double ADX1_1 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_MAIN,0);           // рассчет ADX - торгуем по тренду
   double ADX1_2 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_MAIN,1);
   double ADX_PLUS1_1 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_PLUSDI,0);
   double ADX_PLUS1_2 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_PLUSDI,1);
   double ADX_MINUS1_1 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_MINUSDI,0);
   double ADX_MINUS1_2 = iADX(Symbol(), trend_period, Period_ADX, PRICE_OPEN, MODE_MINUSDI,1);
   
   double iVAR_1 = iCustom (Symbol(),trend_period, "iVAR", n, nBars, 0, 1);                    // расчет индикатора iVAR
   
   // определение входа в рынок по пробою фрaктала        
      F1=iFractals(Symbol(), signal_period, MODE_UPPER, 3); 
        if (F1>0) F11 = F1;      
             
      F2=iFractals(Symbol(), signal_period, MODE_LOWER, 3); 
        if (F2>0) F22 = F2; 
...

               if (Ask > F11 &&                                                                    // пробой фракталя вверх на СИГНАЛЬНОМ таймфрейме 
                   ADX1_1 > ADXOpenLevel  && ADX_PLUS1_1 - ADX_MINUS1_1 > 0 && 
                   ADX1_1 < ADX_PLUS1_1 && ADX1_1 > ADX1_2  &&                                   // АДХ основной тенденции для лонга растет и выше уровня
                      Open[1] > MA_1 && Close[1] > MA_1 &&                                       // цена выше МА основной тенденции 
                      iVAR_1 < 0.5 &&                                                            // тренд на основном ТФ   
             //.........................................ФИЛЬТРЫ...................................
             //                                        ПОЛОСОВОЙ
             //              iOpen(Symbol(), trend_period,1) < iClose(Symbol(), trend_period,1) &&  // белая свеча на основной тенденции
             
             //                                        ДИСКРЕТНЫЙ (ПО ЧАСАМ)                          
             //             (Hour()==9 || Hour()==10 || Hour()==11 || Hour()==12 || Hour()==13 || Hour()==23 || Hour()== 0 
             //             || Hour()==16 || Hour()==17 || Hour()==22 || Hour()==19 || Hour()==20 || Hour()==21 ))
                            (TimeHour(TimeCurrent()) >= Start && TimeHour(TimeCurrent()) <  End))
                          
               {
               WmOrderSend(Symbol(), OP_BUY, Lots_New, Ask, 0, 0, "старт после профита", MagicNumber);
               }
        

Причем trend_period >= signal_period. Т.е., допустим, trend_period =PERIOD_Н1, signal_period=PERIOD_M30, я тестирую одного и того же советника с контролем открытия нового бара по модели тестера - по ценам открытия на ТФ М1, М15, М30 - и каждый раз рисуется новые графики и разные отчеты... Из-за чего подобное возможно? Подскажите кто знает, либо сталкивался с подобным...

П.С. Этот вопрос уже задавал - люди рекомендовали проводить расчет фрактала на 3-ем баре, т.к. на 2-ом (как у меня было ранее) возможна его перерисовка на разных ТФ-ах, я исправил на 3, но вопрос остается открытым...


 
Подскажите пожалуйста! Как написать разницу переменных MACD в пунктах? Например:
if ( MACDCurrent-MACDSignal)>5*Point   // ??
 
forexnew:
Сложная штука. А как Вы решили проблему несохранения закачанных данных без переключения тайм-фрейма, если не секрет? Дело в том, что советник не видит закаченных данных, пока он не переинициализируется.
Была задача сохранить закачанную историю в файлы истории. В процессе загрузки вся история держится в памяти. После закрытия окна МТ4 начинается сохранение в файлы средствами МТ4. Это не быстрый процесс.
 

Уважаемые ПРОФИ!

прошу у вас помощи!

if (((pBid-OrderOpenPrice()) >= -60)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,OOP-23*Point,5,pBid-SL*Point,OOP-3*Point,"Отложка BUY_STOP ",mn,5,0);
}
if (((OrderOpenPrice()-pAsk) >= -60)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,OOP+23*Point,5,pAsk+SL*Point,OOP+3*Point,"Отложка SELL_STOP ",mn,5,0);
}

заключает по 20 -80 сделок. Я не могу понять, это от ДЦ зависит ??

вместо одной - ставит 100 шт.

прошу помощи !!

 

Здравствуйте! Господа.. у меня вот такой вопрос.. нетбук (тошиба) с одноядерным процем 1.66 частотой.. и 1 гиг оперативы.. справится с роботом имеющим большой код? То есть не будет ли разницы в скорости принятия решений с ПК ? И подойдет ли 3G модем для трейдинга?

------------------------------------------------------------------------------------

Ну а если подробнее.. то мне нужно, чтобы советник круглосуточно работал и находился в "онлайне"... незнаю как решить эту поблему, ибо у меня в раене частые перебои с электричеством, как следствие не работает ПК и оборудование провайдера, что находится в подьезде.. Думаю решить эту задачу путем покупки нетбука и 3G модема..

 

Профи, подскажите пожалуйста, в чем суть проблемы.

Простой эксперт:

int start()
{ 

Print(TimeToStr(iTime(pair, PERIOD_D1, 1)),", ", TimeToStr(TimeCurrent())); 

} 

В тестере выводит:

2011.09.29 01:04:47 2011.09.26 23:58 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:58
2011.09.29 01:04:47 2011.09.26 23:58 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:58
2011.09.29 01:04:47 2011.09.26 23:58 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:58
.........................................
2011.09.29 01:04:47 2011.09.26 23:57 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:57
2011.09.29 01:04:47 2011.09.26 23:57 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:57
.....................................
2011.09.29 01:04:47 2011.09.26 23:56 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:56
2011.09.29 01:04:47 2011.09.26 23:56 Test EURUSD,M1: 1970.01.01 00:00, 2011.09.26 23:56

Хотя в теории первая дата должна быть началом суток предыдущего дня.

Подскажите куда смотреть. История вся закачена.

 
Zzumer:

Хотя в теории первая дата должна быть началом суток предыдущего дня.

Подскажите куда смотреть. История вся закачена.


так вы ж на минутках.

1000 первых баров (17 часов в пересчете) недостаточно для обращения к предыдущему дню.