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

 
Andrey Dik #:
добрые люди не суют свой нос туда, куда их не просят. 
Ну во-первых, вопрос не был изначально адресован разработчикам.
Во-вторых, MQ сознательно убрали Сервис Декс, чтобы отфильтровать с помощью форума более 90% вопросов от неопытных программистов или программистов с низкими IQ.
Поэтому просили
 
Nikolai Semko #:
Ну во-первых, вопрос не был изначально адресован разработчикам.
Во-вторых, MQ сознательно убрали Сервис Декс, чтобы отфильтровать с помощью форума более 90% вопросов от неопытных программистов или программистов с низкими IQ.
Поэтому просили

а, понял, тоже хотите помочь? ок. откройте реальный счет и проведите эксперимент на Just2Trade, тоже нет на это времени? - тогда не болтайте зря языком.

вопрос уже задан напрямую разработчикам, так что не утруждайтесь "помогать" мне. 

 
Andrey Dik #:

а, понял, тоже хотите помочь? ок. откройте реальный счет и проведите эксперимент на Just2Trade, тоже нет на это времени? - тогда не болтайте зря языком.

вопрос уже задан напрямую разработчикам, так что не утруждайтесь "помогать" мне. 

Я не собирался вам помогать. С чего вы это взяли?
Я сделал замечание за неподобающее поведение на форуме.
 
Nikolai Semko #:
Я не собирался вам помогать. С чего вы это взяли?
Я сделал замечание за неподобающее поведение на форуме.
ну так ведите себя прилично, не лезьте со своими советами в сугубо техническую ветку если нечего сказать по теме. не флудите здесь, пожалуйста. 
 
Andrey Dik #:
ну так ведите себя прилично, не лезьте со своими советами в сугубо техническую ветку если нечего сказать по теме. не флудите здесь, пожалуйста. 

еще раз.
Это не флуд, а замечание за ваше хамское поведение.

В суть вопроса и в суть ответов даже не вникал, так как ваша аватарка давно пылится на полке моей коллекции агрессивных невежд.

 
Nikolai Semko #:

еще раз.
Это не флуд, а замечание за ваше хамское поведение.

В суть вопроса и в суть ответов даже не вникал, так как ваша аватарка давно пылится на полке моей коллекции агрессивных невежд.

ну, я так и знал. как, впрочем, и остальные те, кто пытался проявить свои "знания" превосходящие знания разработчиков.

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

 
Andrey Dik #:

ну, я так и знал. как, впрочем, и остальные те, кто пытался проявить свои "знания" превосходящие знания разработчиков.

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

   
 
fxsaber #:

Это не так.

Результат на Just2Trade.

Тут даже и добавить не чего. Проблема локализована - разработчикам теперь будет сильно проще ответить на оба поставленных вопроса :)

Andrey Dik #:

ну так какого лешего Вы лезли тогда вместе с Сабером?

Andrey Dik #:
добрые люди не суют свой нос туда, куда их не просят. 

Очень давно пользовался Вашим ГА из статьи. Сегодня увидел вопросы на форуме от Вас, на которые в силах был дать ответ и сэкономить Вам время.  

Если не хотите воспринимать информацию от "простых смертных" - Ваше право.

Опять же - посты с обсуждением вопроса не "засирают" его, а привлекают дополнительное внимание.

В общем - не вижу причин так горячиться и удачи Вам в решении "вопросов"!

 
Andrey Miguzov #:

1. Тут даже и добавить не чего. Проблема локализована - разработчикам теперь будет сильно проще ответить на оба поставленных вопроса :)

2. Очень давно пользовался Вашим ГА из статьи. Сегодня увидел вопросы на форуме от Вас, на которые в силах был дать ответ и сэкономить Вам время.  

3. Если не хотите воспринимать информацию от "простых смертных" - Ваше право.

4. Опять же - посты с обсуждением вопроса не "засирают" его, а привлекают дополнительное внимание.

5. В общем - не вижу причин так горячиться и удачи Вам в решении "вопросов"!

1. Сабер схитрил, и прекрасно понимает это, сам он бесконечный цикл в своем боевом роботе использовать не будет. Либо просто придуряется, Либо в данном случае действительно не понимает проблемы. 

2. Спасибо, и Вам не хворать.

3. Пока не было никакой полезной информации от "простых смертных".

4. Именно засирают, замыливают глаз. На одно моё сообщение разработчикам куча бесполезного флуда наплодили.

5. Не видите причин горячиться? Хорошо, я попытаюсь объяснить на пальцах:

OrderSend () - асинхронная  синхронная* функция, это значит, что советник (или скрипт) будет остановлен до тех пор, пока торговый сервер не пришлет ответ на торговый приказ, и функция вернёт true или false в зависимости от успешности операции.

В структуре ответа торгового сервера содержится информация с результатами торговой операции, и вот тут то и кроется проблема: структура ответа заполнена торговым сервером некорректно, tradeResult.price равен 0.0, и это при том, что функция  OrderSend () вернула true!, причем сделка совершена и позиция открыта и тикет сделки есть в структуре ответа. Далее, вызываем PositionSelect (), если true то запрашиваем цену позиции PositionGetDouble (POSITION_PRICE_OPEN), которая возвращает 0.0!

И Вы до сих пор не видите причин горячиться? - налицо проблема, но всезнайки (при чем не умаляя их заслуг перед сообществом) пытаются убедить, что проблемы никакой нет. Зачем?

*синхронная, именно синхронная, это важно.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2022.06.12 13:33

void OnStart()
{
  if (PositionSelect(_Symbol))
    MessageBox("Close the position and try again!");
  else
  {
    MqlTradeRequest Request = {};
    MqlTradeResult Result[1];
    
    Request.action = TRADE_ACTION_DEAL;
    Request.symbol = _Symbol;
    Request.volume = 1;
  
    if (OrderSend(Request, Result[0]))
    {    
      while (!IsStopped() && !PositionSelectByTicket(Result[0].order))
        Sleep(0);
        
      Print(PositionGetDouble(POSITION_PRICE_OPEN));
    }
  
    ArrayPrint(Result);  
  }
}

Демо открывается за 20 секунд: File->Open an Account->скопировать название сервера в поле поиска->Find your company->Next->Open a demo account.


Результат работы скрипта на  ForexTimeFXTM-Demo01.

2022.06.13 11:06:00.700 Test9 (AUDNZD,M1)       1.10801
2022.06.13 11:06:00.700 Test9 (AUDNZD,M1)           [retcode] [deal]    [order] [volume] [price] [bid] [ask]          [comment] [request_id] [retcode_external] [reserved]
2022.06.13 11:06:00.700 Test9 (AUDNZD,M1)       [0]     10009      0 2269833313  1.00000 0.00000 0.000 0.000 "Request executed"           19                  0        ...

Result.price и Result.deal в нулях. И это правильно и логично. Причина многократно разбиралась на форуме.


В коде, как только PositionSelect возвращает true, сразу делается PositionGetDouble, который, конечно, ненулевой. Написал этот пост, чтобы можно было давать ссылку на него для быстрой демонстрации корректности работы MT5 в этой части.


ЗЫ Прослушивалка всех торговых операций.

  1. Запустите прослушивалку.
  2. Выставите ордер скриптом или руками.
  3. Закройте прослушивалку.
  4. Смотрите результат в \MQL5\Files\OnTradeTransaction.txt.
Это полная картина, что происходит внутри терминала.
Причина обращения: