Ошибки, баги, вопросы - страница 970

 
Lizar:

Раньше IsStopped() помогала бороться с зацикливанием - это точно. С некоторых пор "вечный цикл" не лечится IsStopped() и, в действительности, приходится удалять процесс терминала, чтобы восстановить работу. Хотя с графика индикатор типа удаляется без проблем, но чарт подвисает.

Для удовольствия можно попробовать специально зацикленный индикатор. Кстати, как и полагается в подобном случае, OnDeinit() не срабатывает. 

Страшно даже запускать)
 
zfs:
Страшно даже запускать)
И не надо запускать, то что во вложении. Это для тех кто хочет проверить. Но, если используются индикаторы с тяжелыми расчетами, то этот момент может сказаться. Надо проверять.
 

Как осуществить запрос (отправить сообщение) с Android клиента на MetaTrader клиент, чтобы тот, например отправил Notification

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

 

День добрый!

В сборке от 19.04.13 отладчик стал отображать содержимое MqlRate в фигурных скобках. За что MQ человеческое спасибо! А нет ли планов сделать отображение подобных данных распахивающимся? В смысле похожим на дерево. Распространить это можно и на классы.

Спасибо! 

 

Например:

CAbstractFilter{  meSS:CStrategySettings{  meEntrancePeriod:PERIOD_M15 meHistoryDepth:100 meSymbol:"EURUSD" meHistoryRates:[100] meRangeLimit:0.2 meHiLo:0.006 meHiLoMax:0.02 meTimeStart:" 06:00" meTimeEnd:" 20:00" meAsianStart:" 00:00" meAsianEnd:" 07:… } 

Лучше:

CAbstractFilter:

 + {  meSS:CStrategySettings

+ {  meEntrancePeriod:PERIOD_M15

              meHistoryDepth:100

              meSymbol:"EURUSD"

              meHistoryRates:[100]

              meRangeLimit:0.2} 

 ну и так далее, по типу древовидной структуры директорий в проводнике Windows

Спасибо! 

 

Еще раз здравствуйте!

Step to cursor был бы очень полезен в отладчике. Надеюсь, что появится когда-нибудь. Заранее признателен за комментарии по поводу возможных сроков.

Спасибо! 

 

Кто небуть  наступал на такие грабли при использовании стандартной библиотеки  ?

RF      0       19:42:38        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
RJ      0       19:42:38        Trades  '1001326': deal #204868 sell 1.00 ED-6.13 at 1.3058 done (based on order #2946444)
OQ      0       20:30:54        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
DJ      0       20:30:55        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
FF      0       20:30:55        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
DO      0       20:30:55        Trades  '1001326': deal #204952 buy 1.00 ED-6.13 at 1.3054 done (based on order #2946510)
FK      0       20:30:55        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
HG      0       20:30:55        Trades  '1001326': deal #204953 buy 1.00 ED-6.13 at 1.3054 done (based on order #2946511)
LO      0       20:30:55        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
NS      0       20:30:55        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
NK      0       20:30:55        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
LN      0       20:30:55        Trades  '1001326': deal #204954 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946512)
OR      0       20:30:56        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
EG      0       20:30:56        Trades  '1001326': deal #204955 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946513)
ME      0       20:30:56        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
IN      0       20:30:56        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
OI      0       20:30:56        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
JS      0       20:30:56        Trades  '1001326': deal #204956 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946514)
GO      0       20:30:56        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
NJ      0       20:30:56        Trades  '1001326': deal #204957 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946515)
JD      0       20:30:57        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
PO      0       20:30:57        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
HP      0       20:30:57        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
JJ      0       20:30:57        Trades  '1001326': deal #204958 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946516)
DM      0       20:30:57        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
RS      0       20:30:57        Trades  '1001326': deal #204959 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946517)
JI      0       20:30:57        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
GS      0       20:30:58        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
IM      0       20:30:58        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
OF      0       20:30:58        Trades  '1001326': deal #204960 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946518)
ID      0       20:30:58        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
KN      0       20:30:58        Trades  '1001326': deal #204961 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946519)
OP      0       20:30:58        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
QJ      0       20:30:58        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
QL      0       20:30:58        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
KG      0       20:30:58        Trades  '1001326': deal #204962 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946520)
NI      0       20:30:59        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
DO      0       20:30:59        Trades  '1001326': deal #204963 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946521)
PM      0       20:30:59        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
DG      0       20:30:59        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
NQ      0       20:30:59        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
GJ      0       20:30:59        Trades  '1001326': deal #204964 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946522)
FH      0       20:30:59        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
KR      0       20:30:59        Trades  '1001326': deal #204965 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946523)
OL      0       20:31:00        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
IF      0       20:31:00        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
QH      0       20:31:00        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
CS      0       20:31:00        Trades  '1001326': deal #204966 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946524)
ME      0       20:31:00        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
KK      0       20:31:00        Trades  '1001326': deal #204967 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946525)
PP      0       20:31:01        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
DK      0       20:31:01        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
FE      0       20:31:01        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
ON      0       20:31:01        Trades  '1001326': deal #204968 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946526)
FL      0       20:31:01        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
KF      0       20:31:01        Trades  '1001326': deal #204969 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946527)
LH      0       20:31:01        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
KR      0       20:31:02        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
KD      0       20:31:02        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
HO      0       20:31:02        Trades  '1001326': deal #204970 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946528)
OQ      0       20:31:02        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
PD      0       20:31:02        Trades  '1001326': deal #204971 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946529)
MD      0       20:31:02        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
IO      0       20:31:02        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
OH      0       20:31:02        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
JR      0       20:31:02        Trades  '1001326': deal #204972 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946530)
GP      0       20:31:02        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
MM      0       20:31:03        Trades  '1001326': deal #204973 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946531)
JE      0       20:31:03        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
PN      0       20:31:03        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
HQ      0       20:31:03        Trades  '1001326': exchange sell 1.00 ED-6.13 at market
RK      0       20:31:03        Trades  '1001326': deal #204974 sell 1.00 ED-6.13 at 1.3052 done (based on order #2946532)
DL      0       20:31:03        Trades  '1001326': exchange sell 1.00 ED-6.13 at market placed for execution
GP      0       20:31:03        Trades  '1001326': deal #204975 sell 1.00 ED-6.13 at 1.3051 done (based on order #2946533)
CH      0       20:31:04        Trades  '1001326': exchange buy 1.00 ED-6.13 at market
OD      0       20:31:04        Trades  '1001326': exchange buy 1.00 ED-6.13 at market placed for execution
NN      0       20:31:04        Trades  '1001326': deal #204976 buy 1.00 ED-6.13 at 1.3055 done (based on order #2946534)

Это я пытался закрыть одну позицию SELL хотя в эксперте стоит проверка на то что сначала проверяем на тип позиции.

if(PositionSelect(_Symbol) && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
        {
         trade.PositionClose(_Symbol);

        }

В итоге получил очень много переворотов позиции пока не дошло до того что заявка быстро исполнилась 

код эксперта зацикленный со слипом 300 мс

Результат -100 рублей.

Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 
olyakish:

Кто небуть  наступал на такие грабли ?

грабли не в либе, ибо она отражение сути асинхронности МТ5

а грабли у вас в коде, так как вы не сделали блокировку новых ордеров, пока не получите ответ про исполнение предыдущего.

в МТ5 вы должны самостоятельно организовать нечто похожее на Trade Context Busy для отправленного ордера, как это было в МТ4.

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

ловить исполнение должны либо в OnTrade либо  OnTradeTransaction

удачи. ;)

 

Чувствую себя полным.

В индикаторе присваиваю значение переменной.

#property indicator_separate_window

...

int x;//

int OnInit()

{

}

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],
                const double &high[],const double &low[],const double &close[],const long &tick_volume[],
                const long &volume[],const int &spread[])
  {

 if(prev_calculated==0){

//при 1-м запуске присваиваю значение

x=у;//у!=7558445

}

else

{

Print(x);//здесь x уже =7558445.

}

}

И что я не так делаю?

 
А вот сейчас стало нормально, хотя код не менялся. Просто перезапустил терминал. И этот баг связан с исчезновением гистограммы, о котором говорил ранее, и то возникает, то исчезает. Чем это может быть вызвано?
 
sergeev:

грабли не в либе, ибо она отражение сути асинхронности МТ5

а грабли у вас в коде, так как вы не сделали блокировку новых ордеров, пока не получите ответ про исполнение предыдущего.

в МТ5 вы должны самостоятельно организовать нечто похожее на Trade Context Busy для отправленного ордера, как это было в МТ4.

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

ловить исполнение должны либо в OnTrade либо  OnTradeTransaction

удачи. ;)

Да я уже так и подумал, что придется делать дополнительный анализ. Спасибо что подтвердили догадки
Причина обращения: