Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1144

 
Маргарита Королёва:

Официальный ответ моего брокера (выдержка):

"В наших регламентирующих документах предусмотрено, что для торговли с хеджинговой системой учета ордеров и совершения разнонаправленных сделок мы предоставляем исключительно торговый терминал МТ4."

Вот как... Подвох он и в Африке подвох... Я опять в растрепанных чувствах :(

...пойду-ка я лучше с подругами на стриптиз, что-то в последнее время, у меня с форексом отношения не фэн-шуются :(
Вы уже читали? И это тенденция
 
Маргарита Королёва:

Вот как... Подвох он и в Африке подвох... Я опять в растрепанных чувствах :(


...и чем больше будете копать МТ5, тем больше они будут растрёпаны)
начинайте с МТ4
 
Маргарита Королёва:

Официальный ответ моего брокера (выдержка):

"В наших регламентирующих документах предусмотрено, что для торговли с хеджинговой системой учета ордеров и совершения разнонаправленных сделок мы предоставляем исключительно торговый терминал МТ4."

Скажите пожалуйста, а зачем Вам хеджирование? С неттинговой системой удобно торговать, особенно скальпировать. Там еще стакан для этого есть. Если цена идет вверх, делаю покупку 0,01 лота. И увеличиваю лот до 0,02. Когда цена пойдет вниз, делаю продажу 0,02. Покупка автоматом закрывается, остается продажа 0,01. Одним движением сделка реверсируется. Отсутствует надобность в закрытии позиции. И так далее. Быстро и удобно. В любой момент имеется одна суммарная позиция, что удобно для управления. Открывай сколько хочешь ордеров, а позиция одна, усредненная. А четверочники мучаются с закрытием кучи разнонаправленных позиций. Для торговли удобнее MT5, а для первоначального изучения языка - MQL4. Это Вам ростовский волк с многолетним опытом торговли и программирования говорит.

Смоделируем хеджирование на нашем городском базаре.

Картошку торговке можно продать по 50 (BID), и купить у нее по 100 (ASK). Приходим и покупаем за 100 рублей ведро картошки. И договариваемся, что через час вернем по рыночной цене (за 50). Ведь на форексе открытую позицию надо рано или поздно закрыть обратной операцией. Предполагаем, что приедут за картошкой из столовой. И цена возрастет втрое. Тогда продадим за 150 и лишних 50 останется в кармане. Но тут приезжают колхозники с машиной картошки и цена падает (40 и 80) - тренд сменился. По умному стоило бы продать наше ведро за 40 (слить депозит) и забыть про форекс. Но мы будем хеджировать. Мы продаем нашу картошку другой торговке за 40 и договариваемся, что через полчаса выкупим картошку по рыночной цене (видимо за 80) чтоб вернуть первой торговке. Где-нибудь есть ошибка в описании хеджирования? Тогда исправьте, или приведите другой пример, доказывапющий пользу хеджирования

 
Свою первую получку буду помнить всю жизнь. Жил в общежитии и был свободен как птица.
Алкоголь и сейчас избегаю, и тогда был противник. Решил себя с получки чем-то порадовать, и пошел на базар.
Встречаю там мужика с нашего двора по прозвищу Индикатор. Поздоровались, и он мне говорит:
- Возьми у меня инструмент. Тебе за 100 отдам. А недели через две весна окончательно наступит, мужики из гаражей выедут,
ты им тогда инструмент за 130 отдашь. Будет тебе на пиво.
Рассуждение Индикатора мне понравилось. Взял у него один инструмент за 100.
На следующей неделе снова пошел на базар узнать свою прибыль.
На месте, где в прошлый раз был Индикатор, теперь сидел мужик по кличке Усреднитель. Он и говорит:
- Индикатора мы поколотили. Он нам цену сбивал. Бери еще один инструмент, тебе за 80 отдам.
Получится что ты за два 180 отдал, т.е. по 90 за каждый. Десятку как бы сразу назад вернул.
Подвинешь тейк-профит со 130 на 120 - так же быстрее продашь. Будет тебе на два пива.
Рассуждение Усреднителя мне тоже понравилось. Взял у него второй инструмент за 80.
На следующей неделе побежал на базар узнать про прибыль. Усреднитель говорит:
- Бери еще два инструмента, отдам тебе по 70. Получится что ты за четыре 320 отдал, т.е. по 80 за каждый.
Подвинешь тейк-профит со 120 на 110 - так же быстрее продашь. Будет тебе на четыре пива.
Подумал - получается, как бы двадцатку сразу назад возвращаю, и прибыль быстрее получу. Взял инструменты.
Только растолкал их по карманам, подходит Михалыч и говорит Усреднителю:
- Вот принес еще пять штук, по 50 возьмешь?
Усреднитель инструменты взял, Михалыч деньги в карман и ходу. Догоняю его и говорю:
- Стой, Михалыч. Тут некоторые усредняют, чтоб потом большую прибыль получить. А ты что делаешь?
И рассказал ему все как есть. Он сердито на меня посмотрел, даже плюнул со злобой и говорит:
- Так это ты инструмент скупал, цену поднимал? Только ты 4 штуки купил, а я 15 приволок. Вот цена и идет вниз!!!
Где взял-то?  Да у соседей по гаражам на время одолжил. Они же покупать вряд ли пойдут, надеются, что верну.
Получается, на базаре лишки инструмента - вот цена и падает. Как дойдет до 20 или хотя бы до 30,
так я их назад куплю и дружкам назад верну. А разница моя. Ну тут конечно цена подскочит до 60.
Но назад к 100 вряд ли пойдет.
Что было дальше? Новая технология пошла, так что инструменты остались у меня на память. Усреднением сыт по горло на всю жизнь.
 
Taras Slobodyanik:    ...и чем больше будете копать МТ5, тем больше они будут растрёпаны)    начинайте с МТ4

Для торговли лучше MT5 с неттинговым счетом.  Для освоения программирования лучше MQL4. Потом за неделю переход на MQL5. Так что ставим оба

 

Хочу установить отложенный ордер так, что бы через время, равное периоду ТФ ордер отменился (на следующей свече). Делаю так:

ulong time = TimeCurrent () + GetSecCountFromTF (PERIOD_CURRENT);
G_LastTicket = SendOrder (Symbol (),
                          lot,
                          type,
                          ORDER_TIME_SPECIFIED, // ORDER_TIME_GTC,
                          (datetime)time,
                          NormalizeDouble (priceOpen, Digits ()),
                          NormalizeDouble (priceSL,   Digits ()),
                          NormalizeDouble (priceTP,   Digits ()),
                          Magic_P,
                          comment,
                          FillReturn_P);

//——————————————————————————————————————————————————————————————————————————————
// Установить отложенный ордер, усех: номер тикета, неудача: -1,
// функция НЕ делает нормализацию значений цены и уровней стопов
ulong SendOrder (string                  symbol,     //символ
                 double                  volume,     //объем
                 ENUM_ORDER_TYPE         type,       //тип ордера, ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT
                 ENUM_ORDER_TYPE_TIME    typeTime,   //ORDER_TIME_GTC           - Ордер будет находится в очереди до тех пор, пока не будет снят
                                                     //ORDER_TIME_DAY           - Ордер будет действовать только в течение текущего торгового дня
                                                     //ORDER_TIME_SPECIFIED     - Ордер будет действовать до даты истечения
                                                     //ORDER_TIME_SPECIFIED_DAY - Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.
                 datetime                expTime,    // дата истечения
                 double                  priceOpen,  // уровень цены установки ордера
                 double                  priceSL      = 0.0,  // уровень цены SL
                 double                  priceTP      = 0.0,  // уровень цены TP
                 long                    magic_number = 0,    // уникальный идентификатор
                 string                  comment      = "",   // комментарий
                 ENUM_ORDER_TYPE_FILLING filling = ORDER_FILLING_RETURN) //ORDER_FILLING_FOK - всё или ничего
                                                                         //ORDER_FILLING_IOC - разрешен неполный объем
                                                                         //ORDER_FILLING_RETURN - частичное до полного заполнения
{
  //--- готовим запрос
  MqlTradeRequest request = { 0 }; //торговый запрос
  MqlTradeResult  result  = { 0 }; //результат торгового запроса

  request.symbol       = symbol;               // инструмент
  request.volume       = volume;               // объем
  request.action       = TRADE_ACTION_PENDING; // установка отложенного ордера
  request.type         = type;                 // тип ордера
  request.type_time    = typeTime;             // тип времени истечения ордера
  request.expiration   = expTime;
  request.price        = priceOpen;            // цена для открытия
  request.sl           = priceSL;              // уровень Stop Loss
  request.tp           = priceTP;              // уровень Take Profit
  request.magic        = magic_number;         // уникальный идентификатор
  request.comment      = comment;              // комментарий
  request.type_filling = filling;              // тип заливки ордера

  //--- отправим торговый приказ
  bool success = OrderSend (request, result);
  if(success)
  {
    return ((int)result.order);
  }

  //--- выведем в лог ответ сервера
  Print ("Failed send pending order, comment from server: " + result.comment + ", Retcode: " + (string)result.retcode);

  return (-1);
}
//——————————————————————————————————————————————————————————————————————————————

//——————————————————————————————————————————————————————————————————————————————
// Возвращает количество секунд в указанном ТФ
int GetSecCountFromTF (ENUM_TIMEFRAMES period)
{
  switch(period)
  {
  case PERIOD_M1:
    return (60);
  case PERIOD_M2:
    return (120);
  case PERIOD_M3:
    return (180);
  case PERIOD_M4:
    return (240);
  case PERIOD_M5:
    return (300);
  case PERIOD_M6:
    return (360);
  case PERIOD_M10:
    return (600);
  case PERIOD_M12:
    return (720);
  case PERIOD_M15:
    return (900);
  case PERIOD_M20:
    return (1200);
  case PERIOD_M30:
    return (1800);
  case PERIOD_H1:
    return (3600);
  case PERIOD_H2:
    return (7200);
  case PERIOD_H3:
    return (10800);
  case PERIOD_H4:
    return (14400);
  case PERIOD_H6:
    return (21600);
  case PERIOD_H8:
    return (28800);
  case PERIOD_H12:
    return (43200);
  case PERIOD_D1:
    return (86400);
  case PERIOD_W1:
    return (604800);
  case PERIOD_MN1:
    return (2592000);
  default:
    return (60);
  }
}
//——————————————————————————————————————————————————————————————————————————————

Но сервер возвращает ошибку:

2017.04.16 09:48:49.732    Core 1    2017.02.10 05:25:00   Failed send pending order, comment from server: Invalid expiration, Retcode: 10022

Что я делаю не так? Проверку делаю в тестере.

 
Andrey Dik:

Хочу установить отложенный ордер так, что бы через время, равное периоду ТФ ордер отменился (на следующей свече). Делаю так:

Но сервер возвращает ошибку:

2017.04.16 09:48:49.732    Core 1    2017.02.10 05:25:00   Failed send pending order, comment from server: Invalid expiration, Retcode: 10022

Что я делаю не так? Проверку делаю в тестере.

Я, когда делал для пятёрки человеку отмену ордеров, то так же столкнулся с такой ошибкой. Может время экспирации не используется. то ли что там - разбираться не стал. Просто сам программно снимаю ордер по истечении времени - если текущее время больше, либо равно времени установки ордера плюс PeriodSeconds(НУЖНЫЙ_ПЕРИОД_СВЕЧИ)*количество_свечей
 
Andrey Dik:

Хочу установить отложенный ордер так, что бы через время, равное периоду ТФ ордер отменился (на следующей свече). Делаю так:

Но сервер возвращает ошибку:

2017.04.16 09:48:49.732    Core 1    2017.02.10 05:25:00   Failed send pending order, comment from server: Invalid expiration, Retcode: 10022

Что я делаю не так? Проверку делаю в тестере.

В mql4 была ближайшая дата истечения +10 минут. Как сейчас не знаю, надо-бы проверить как сейчас в mql5.
 
Artyom Trishkin:
Я, когда делал для пятёрки человеку отмену ордеров, то так же столкнулся с такой ошибкой. Может время экспирации не используется. то ли что там - разбираться не стал. Просто сам программно снимаю ордер по истечении времени - если текущее время больше, либо равно времени установки ордера плюс PeriodSeconds(НУЖНЫЙ_ПЕРИОД_СВЕЧИ)*количество_свечей

Спасибо за PeriodSeconds (), забыл совсем про эту функцию.

Alexey Viktorov:
В mql4 была ближайшая дата истечения +10 минут. Как сейчас не знаю, надо-бы проверить как сейчас в mql5.

Да и в mql5 не получается.


Понятно. Придется самостоятельно проверять время ордеров и удалять, очень не хотелось этого делать.

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