MetaTrader 4. Build 159. - страница 7

 
А где был рынок в момент установки отложенного ордера? Укажите Bid/Ask.

в ту минуту (15:54) лоу был 137.58, хай - 137.64. точнее не скажу

Тогда все сходится. Покупка совершается по цене Ask, а на графиках - биды. Если бид=137.64, то аск = 137.68
Была попытка провести операцию buy stop 1.00 EURJPY at 137.6900 sl: 137.4800 tp: 0.0000
Сразу видно, что цена открытия в 1 пункте от рыночной цены. А минимальный отступ для EURJPY 5 пунктов.
То есть, ордер мог пройти только по цене не меньше 137.72

Ренат, в том то и дело, что _проверка_есть_. Кусок кода:
int digits = MarketInfo( _Symbol, MODE_DIGITS );
double ask = NormalizeDouble( MarketInfo( _Symbol, MODE_ASK ), digits );
double bid = NormalizeDouble( MarketInfo( _Symbol, MODE_BID ), digits );
double point = MarketInfo( _Symbol, MODE_POINT );
int stoplevel = MarketInfo( _Symbol, MODE_STOPLEVEL );
...............
// - - цена открытия - должна быть выше Ask
[b]if ( _OpenPrice - ask < stoplevel * point )
{ return(-1); }[/b]
........


во вторых, вы взяли _максимальное_значение_. Ask в тот момент с таким же успехом мог быть 137,62 - тогда заявка бы прошла. Если есть возможность - уточните - время ошибки 15:54:54 ...
мне ведь не ордер жалко =), я просто хочу написать максимально грамотного и устойчивого эксперта, чтоб в реале не было таких проблем....

 
покапался в своих логах...
что самое интересное - ордер таки установился =)))
у меня 3 попытки установить - так вот со второй получилось ( в 15:55:06 )
есть подозрение, что цена просто прыгала туда сюда, и пока проходила проверка, она приблизилась к опенпрайс. Поэтому и ошибка.. а через 10 сек повторный запрос - и условия устраивают..
Может подскажете, как избежать такой ситуации?
 
Беда в том, что деньги нельзя выражать вещественными числами, полкопейки смысла не имеют (обычно).
Для этого есть другие типы данных - Decimal, Money, на худой конец Int32.

Беда тут одна - далекость от программирования.

А так получается что свои внутренние проблемы (ошибки проектирования) вы на юзеров перекладываете,
да еще обвиняете их при этом в недалекости ...

Mak, прошу Вас - пожалуйста, хоть минимально будьте в теме? Показываете себя как теоретик без практики. Вы вообще не в курсе проблем округлений и потери точности в вычислениях с вещественными числами. Возьмите и напишите пару примеров, используя C, С++, Delphi, Java. Но уже не здесь.
 
Правой кнопкой мыши кликаю, вываливается: Новый файл, новая папка, открыть, удалить, обновить. Выбираю удалить, ничего не происходит. Может как нибудь по другому?

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

Удаляется через навигатор терминала, затем в MetaEditor делаю обновить, тогда исчезает. Напрямую из MetaEditor не получается удалить.
 
Renat,

Из примера скрипта period_converter я понял, что volume
в файлах истории хранится в виде DOUBLE.
Это действительно так ? Ведь объем - это целое,
причем весьма короткое.
 
покапался в своих логах...
что самое интересное - ордер таки установился =)))
у меня 3 попытки установить - так вот со второй получилось ( в 15:55:06 )
есть подозрение, что цена просто прыгала туда сюда, и пока проходила проверка, она приблизилась к опенпрайс. Поэтому и ошибка.. а через 10 сек повторный запрос - и условия устраивают..
Может подскажете, как избежать такой ситуации?

Ренат, что-нибудь прояснилось?

__________________________________________
и, пока помню... обсуждали мы со Славой статические переменные - "global static variables"
Поправите?
 
Renat,

Из примера скрипта period_converter я понял, что volume
в файлах истории хранится в виде DOUBLE.
Это действительно так ? Ведь объем - это целое,
причем весьма короткое.

Да, в МТ4 объем имеет тип double.

Ренат, что-нибудь прояснилось?

А чего там проясняться? Если сделки идут на границе возможного отступа от рынка, то сервер гораздо лучше трейдера знает - можно ли совершать сделки или нет. Рынок в какой-то момент откатился на пару пипсов - отспут стал больше - вот и получилось разрешение выставить ордер.
 
Второй раз замечаю следующее:
Сработал размещенный на 1.2965 отложенный ордер BuyStop.
OHLC бара: 1.2956 1.2961 1.2950 1.2956 в данный момент.
 
Сработал размещенный на 1.2965 отложенный ордер BuyStop.
OHLC бара: 1.2956 1.2961 1.2950 1.2956 в данный момент.

Графики строятся по цене Bid.
Причина обращения: