Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А я вообще не понимаю, как можно закрывать ордер по цене закрытия OrderClosePrice(), которая будет иметь вменяемое значение только после закрытия позиции. До этого в ней будет просто 0. Здесь уж никакой слиппадж не спасет.
Угу, закрываем по непонятной цене закрытия непонятного ордера, и главное иногда закрывается!
Кстати, только что к своему стыду обратил внимание - а где выбор необходимого ордера через OrderSelect(). Насколько корректно в данной функции использовать OrderClosePrice() без вызова OrderSelect(). Где гарантия, что использование OrderClosePrice() корректно?
Функция Close() гарантированно вызывается только в случае успешного выполнения функции OrderSelect().
Иначе бы функция генерировала бы код ошибки 129 (Неправильная цена) а не 0.
А я вообще не понимаю, как можно закрывать ордер по цене закрытия OrderClosePrice(), которая будет иметь вменяемое значение только после закрытия позиции. До этого в ней будет просто 0. Здесь уж никакой слиппадж не спасет.
Если бы было так как Вы пишете, то функция OrderClose() генерировала бы код ошибки 129 (Неправильная цена), а не 0 (Нет ошибки).
Кстати, в справке здесь дан пример не той функции...
Если бы было так как Вы пишете, то функция OrderClose() генерировала бы код ошибки 129 (Неправильная цена), а не 0 (Нет ошибки).
Ок, если не верите мне, попробуйте сами нехитрый код. Что он вам выдаст?
Вы увидите, что до закрытия позиции ее цена закрытия равна нулю. Вы же пытаетесь закрывать все позиции по цене 0. Я сильно удивлен, что ваш советник закрывает позиции.
Если у вас действительно все позиции закрываются по цене ноль, то стоит наоткрываться вкороткую по всем валютам и тут же все их закрыть по такой чудесной цене. Вы переплюнете Сороса и Баффета вместе взятых.
Ок, если не верите мне, попробуйте сами нехитрый код. Что он вам выдаст?
Вы увидите, что до закрытия позиции ее цена закрытия равна нулю. Вы же пытаетесь закрывать все позиции по цене 0. Я сильно удивлен, что ваш советник закрывает позиции.
Если у вас действительно все позиции закрываются по цене ноль, то стоит наоткрываться вкороткую по всем валютам и тут же все их закрыть по такой чудесной цене. Вы переплюнете Сороса и Баффета вместе взятых.
Пожалуйста,
Вот код советника:
#property copyright "bablokos"
#property link ""
int ticket;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, NULL, 0);
OrderSelect(ticket, SELECT_BY_TICKET);
Print("Open Price ", OrderClosePrice());
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(ticket > 0)
{
static datetime prevtime;
if(iTime(Symbol(), NULL, 0) == prevtime)
return(0);
prevtime = iTime(Symbol(), NULL, 0);
OrderSelect(ticket, SELECT_BY_TICKET);
Print("Close Price ", OrderClosePrice());
}
//----
return(0);
}
//+------------------------------------------------------------------+
А вот его лог:
23:00:23 Test started for testing
23:00:23 2008.08.06 00:04 Test EURUSD,H1: open #1 buy 0.10 EURUSD at 1.5452 ok
23:00:23 2008.08.06 00:04 Test EURUSD,H1: Open Price 1.545
23:00:23 2008.08.06 00:04 Test EURUSD,H1: Close Price 1.545
23:00:23 2008.08.06 01:01 Test EURUSD,H1: Close Price 1.5461
23:00:23 2008.08.06 02:00 Test EURUSD,H1: Close Price 1.5465
23:00:23 2008.08.06 03:00 Test EURUSD,H1: Close Price 1.5471
23:00:23 2008.08.06 04:00 Test EURUSD,H1: Close Price 1.5479
23:00:23 2008.08.06 05:00 Test EURUSD,H1: Close Price 1.5482
23:00:23 2008.08.06 06:00 Test EURUSD,H1: Close Price 1.5494
23:00:23 2008.08.06 07:00 Test EURUSD,H1: Close Price 1.5496
23:00:23 2008.08.06 08:00 Test EURUSD,H1: Close Price 1.5496
23:00:23 2008.08.06 09:00 Test EURUSD,H1: Close Price 1.5509
23:00:23 2008.08.06 10:00 Test EURUSD,H1: Close Price 1.5497
23:00:23 2008.08.06 11:00 Test EURUSD,H1: Close Price 1.5475
23:00:23 2008.08.06 12:00 Test EURUSD,H1: Close Price 1.5482
23:00:23 2008.08.06 13:00 Test EURUSD,H1: Close Price 1.5468
23:00:23 2008.08.06 14:00 Test EURUSD,H1: Close Price 1.5481
23:00:23 2008.08.06 15:00 Test EURUSD,H1: Close Price 1.5456
23:00:23 2008.08.06 16:00 Test EURUSD,H1: Close Price 1.5421
23:00:23 2008.08.06 17:00 Test EURUSD,H1: Close Price 1.5418
23:00:23 2008.08.06 18:00 Test EURUSD,H1: Close Price 1.5409
23:00:23 2008.08.06 19:00 Test EURUSD,H1: Close Price 1.543
23:00:23 2008.08.06 20:00 Test EURUSD,H1: Close Price 1.5419
23:00:23 2008.08.06 21:00 Test EURUSD,H1: Close Price 1.5415
23:00:23 2008.08.06 22:00 Test EURUSD,H1: Close Price 1.5413
23:00:23 2008.08.06 23:00 Test EURUSD,H1: Close Price 1.5406
23:00:23 2008.08.07 00:00 Test EURUSD,H1: Close Price 1.5413
23:00:23 2008.08.07 01:00 Test EURUSD,H1: Close Price 1.5415
23:00:23 2008.08.07 02:00 Test EURUSD,H1: Close Price 1.5421
23:00:23 2008.08.07 03:00 Test EURUSD,H1: Close Price 1.543
23:00:23 2008.08.07 04:01 Test EURUSD,H1: Close Price 1.5434
23:00:23 2008.08.07 05:00 Test EURUSD,H1: Close Price 1.5433
23:00:23 2008.08.07 06:00 Test EURUSD,H1: Close Price 1.5431
23:00:23 2008.08.07 07:00 Test EURUSD,H1: Close Price 1.544
23:00:23 2008.08.07 08:00 Test EURUSD,H1: Close Price 1.5444
23:00:23 2008.08.07 09:00 Test EURUSD,H1: Close Price 1.5472
23:00:23 2008.08.07 10:00 Test EURUSD,H1: Close Price 1.5465
23:00:23 2008.08.07 11:00 Test EURUSD,H1: Close Price 1.5473
23:00:23 2008.08.07 12:00 Test EURUSD,H1: Close Price 1.5469
23:00:23 2008.08.07 13:00 Test EURUSD,H1: Close Price 1.5466
23:00:23 2008.08.07 14:00 Test EURUSD,H1: Close Price 1.5468
23:00:23 2008.08.07 15:00 Test EURUSD,H1: Close Price 1.5413
23:00:23 2008.08.07 16:00 Test EURUSD,H1: Close Price 1.5386
23:00:23 2008.08.07 17:00 Test EURUSD,H1: Close Price 1.5375
23:00:23 2008.08.07 18:00 Test EURUSD,H1: Close Price 1.534
23:00:23 2008.08.07 19:00 Test EURUSD,H1: Close Price 1.5324
23:00:23 2008.08.07 20:00 Test EURUSD,H1: Close Price 1.5326
23:00:23 2008.08.07 21:00 Test EURUSD,H1: Close Price 1.5325
23:00:23 2008.08.07 22:00 Test EURUSD,H1: Close Price 1.5321
23:00:23 2008.08.07 23:00 Test EURUSD,H1: Close Price 1.5323
23:00:23 2008.08.07 23:59 Tester: order #1 is closed
Вопрос об OrderClosePrice уже поднимался. Это цена, по которой возможно в данный момент закрыть ордер. Посмотрите внимательно на лог и терминал - это цены начала баров (т.е. Open).
Вопрос об OrderClosePrice уже поднимался. Это цена, по которой возможно в данный момент закрыть ордер. Посмотрите внимательно на лог и терминал - это цены начала баров (т.е. Open).
Вы видите в логе цены Open потому что только они и распечатываются. Уберите из функции start() следующие строки
if(iTime(Symbol(), NULL, 0) == prevtime)
return(0);
prevtime = iTime(Symbol(), NULL, 0);
и Вы увидите в логе цену на каждом тике.
Вы видите в логе цены Open потому что только они и распечатываются. Уберите из функции start() следующие строки
if(iTime(Symbol(), NULL, 0) == prevtime)
return(0);
prevtime = iTime(Symbol(), NULL, 0);
и Вы увидите в логе цену на каждом тике.
Да, а я что сказал? Я знаю про этот трюк со входом на начале бара. Я не про это. ОрдерКлоузПрайс это в о з м о ж н а я цена. То есть по ней возможно закрыть в данный момент, теоретически, если сильно захотеть.