Вопросы новичков к профессионалам Форекс

Ugar

Гуру форума
Добрый день, парни, нужна помощь, я прописываю в сове две пары лимитных ордеров, нужно прописать условие, чтобы при срабатывании одной пары, другая удалялась, с функцией делит проблем нету, проблема в самом условии, допустим открылась пара и сразу удаляется другая пара и выставляется заново, настройки все есть, если я пропишу удаление ордеров при срабатывании этой пары, то они будут удаляться на каждом тике, а мне нужно чтобы они удалились только при срабатывании, допустим на следующем тике и все, как это сделать?
Запомнить в статической переменной тикет отложенного ордера.
При обнаружении открытого ордера, сравнить с тикетом запомненного отложенного. Если они равны значит это был отложенный и стал открытым, то есть сработал. Выполнить нужные действия и очистить переменную с тикетом отложенного.
Как то так.
 

Shtebon

Прохожий
Всем привет, посоветуйте новичку какого выбрать торгового эксперта? остановился на Auto-Profit3.0 вроде всё норм, но когда долгий тренд в одну сторону, он не закрывает старые позиции и поэтому сливает. Что посоветуете ещё ппробовать?
 

Ugar

Гуру форума
Всем привет, посоветуйте новичку какого выбрать торгового эксперта? остановился на Auto-Profit3.0 вроде всё норм, но когда долгий тренд в одну сторону, он не закрывает старые позиции и поэтому сливает. Что посоветуете ещё ппробовать?
Без разницы, все подряд. Обычно, через несколько лет тестирования "чудо" советников и нескольких слитых депозитов, приходит понимание что надо разрабатывать свою систему. А пока, советников на форуме много, а в интернете ещё больше... Ещё можно покупать советники в магазинах, убедившись что купил очередной программный хлам, выложить его в интернет, дабы отомстить продавцу...
 

Shtebon

Прохожий
Без разницы, все подряд. Обычно, через несколько лет тестирования "чудо" советников и нескольких слитых депозитов, приходит понимание что надо разрабатывать свою систему. А пока, советников на форуме много, а в интернете ещё больше... Ещё можно покупать советники в магазинах, убедившись что купил очередной программный хлам, выложить его в интернет, дабы отомстить продавцу...

Вот тоже самое думаю про инвест систем) Хотя немогу понять этот советник auto-profit-3.0 толи работает он толи нет)
Сейчас прогоняю его с 1 января на таймфрейме 15 с депозита 1000. всё бы ничего, но волнуют просадки из за которых можно слиться.
 

Вложения

  • 12344.jpg
    12344.jpg
    590,4 КБ · Просмотры: 112

sergey1989

Интересующийся
Запомнить в статической переменной тикет отложенного ордера.
При обнаружении открытого ордера, сравнить с тикетом запомненного отложенного. Если они равны значит это был отложенный и стал открытым, то есть сработал. Выполнить нужные действия и очистить переменную с тикетом отложенного.
Как то так.

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

sergey1989

Интересующийся
Вот тоже самое думаю про инвест систем) Хотя немогу понять этот советник auto-profit-3.0 толи работает он толи нет)
Сейчас прогоняю его с 1 января на таймфрейме 15 с депозита 1000. всё бы ничего, но волнуют просадки из за которых можно слиться.

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

Ugar

Гуру форума
хорошо, значит я функцией возвращаю тикет открытого ордера, с этим я справлюсь, а вот по-поводу сравнения, как это лучше записать, а очистить, это допустим посе срабатывания переменная х=0?
К примеру есть отложенный ордер BuyStop с тикетом 12354678.
Записали в статическую переменную Ticket. Теперь статическая переменная Ticket=12354678.
На каждом тике выбрать этот ордер по тикету. И проверить тип ордера.
Если он не BuyStop, а Buy значит он сработал. Сброс статической переменной тикета и выполнение действий которые надо сделать при сработке.
if(Ticket>0)
{
OrderSelect(Ticket,SELECT_BY_TICKET);
if(OrderTicket()==OP_BUY)
{
Ticket=0;
//Дальше действия при сработке ордера
}
}
 

sergey1989

Интересующийся
К примеру есть отложенный ордер BuyStop с тикетом 12354678.
Записали в статическую переменную Ticket. Теперь статическая переменная Ticket=12354678.
На каждом тике выбрать этот ордер по тикету. И проверить тип ордера.
Если он не BuyStop, а Buy значит он сработал. Сброс статической переменной тикета и выполнение действий которые надо сделать при сработке.
if(Ticket>0)
{
OrderSelect(Ticket,SELECT_BY_TICKET);
if(OrderTicket()==OP_BUY)
{
Ticket=0;
//Дальше действия при сработке ордера
}
}

а разве при таком условии действие не будет выполняться на каждом тике? Потому что при следующей проверке он опять покажет, что тикет больше нуля, а мне нужно, чтобы действие выполнялось единожды, только при срабатывании, и опять в ожидании срабатывания
 

Ugar

Гуру форума
а разве при таком условии действие не будет выполняться на каждом тике? Потому что при следующей проверке он опять покажет, что тикет больше нуля, а мне нужно, чтобы действие выполнялось единожды, только при срабатывании, и опять в ожидании срабатывания
Ещё раз. Значение тикета в переменную Ticket пишется только если ордер отложенный, то есть BuyStop.
Когда ордер стал Buy, то есть сработал, переменная Ticket сбрасывается в 0.
На следующем тике ордер не может снова стать отложенным, по этому в переменной Ticket останется 0.
 

sergey1989

Интересующийся
Ещё раз. Значение тикета в переменную Ticket пишется только если ордер отложенный, то есть BuyStop.
Когда ордер стал Buy, то есть сработал, переменная Ticket сбрасывается в 0.
На следующем тике ордер не может снова стать отложенным, по этому в переменной Ticket останется 0.

Ещё раз. Значение тикета в переменную Ticket пишется только если ордер отложенный, то есть BuyStop.
Когда ордер стал Buy, то есть сработал, переменная Ticket сбрасывается в 0.
На следующем тике ордер не может снова стать отложенным, по этому в переменной Ticket останется 0.

Извините меня за дотошность), все будет выглядеть так:
PHP:
start()
{
if(TicketNearPos(Magic)>0)
{
OrderSelect(Ticket,SELECT_BY_TICKET);
if(OrderTicket()==OP_BUY)
{
TicketNearPos(Magic)=0;
 OrderDelet();
}
}
return(0);
//--------------------------------------

int TicketNearPos( int magic) 
{
  double mi, p;
  int    i, k=OrdersTotal(), pp=0, ti=0;
  for (i=0; i<k; i++) 
  {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
    {
      if (OrderSymbol()==Symbol()) 
      {
        if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) 
        {
          if (OrderMagicNumber()==magic) 
          {
            if (OrderType()==OP_BUYSTOP)  mi=MarketInfo(OrderSymbol(), MODE_ASK);
            if (OrderType()==OP_SELLSTOP) mi=MarketInfo(OrderSymbol(), MODE_BID);
            p=MarketInfo(OrderSymbol(), MODE_POINT);
            if (p==0) if (StringFind(NULL, Symbol())<0) p=0.0001; else p=0.01;
            if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) 
            {
              pp=MathAbs(OrderOpenPrice()-mi)/p;
              ti=OrderTicket();
            }
          }
        }
      }
    }
  }
  return(ti);
}

Посмотрите пожалуйста, хочу сделать точно, чтобы больше не возвращаться к этой ошибке
 
Последнее редактирование модератором:

morozik1959

Местный знаток
Ребята подскажите кто знает, в каком ДЦ начисляют положительные свопы.
Можно в личку.
 

Fx-77

Прохожий
ребят, подскажите как заставить советник не выставлять ордер до появления новой свечи?
 

Ugar

Гуру форума
ребят, подскажите как заставить советник не выставлять ордер до появления новой свечи?
Код:
bool NowBar=false;
static datetime LastTime;
if(LastTime==0)LastTime=Time[0];
if(LastTime!=Time[0])NowBar=true;
LastTime=Time[0];
Здесь NowBar флаг нового бара. Он будет true на первом тике нового бара.
 

1Иваныч1

Гуру форума
Мнение

Профи, подскажите, какой из фибо будет более влиятелен - желтый или белый? Понятно, что после пробития 61 белого он не будет влиятелен.
 

Вложения

  • Безымянный.gif
    Безымянный.gif
    119,1 КБ · Просмотры: 62

STARGAZER

Новичок форума
Существует ли эмулятор ДЦ

Хотелось бы проверить используя некоторые советники используя определенные движения в реальном режиме. Демо не позволяет этого так как сидеть и ждать нету времени. Тестеруне могу доверять т.к. тиковый советник показывает миллионы, а на демо сливает. Подскажие существует ли программа эмулятор ДЦ (чтобы самому задавать направления движений) и возможно ли к ней прицепить метатрейдер для тестирования
 

ansol

Местный знаток
Хотелось бы проверить используя некоторые советники используя определенные движения в реальном режиме. Демо не позволяет этого так как сидеть и ждать нету времени. Тестеруне могу доверять т.к. тиковый советник показывает миллионы, а на демо сливает. Подскажие существует ли программа эмулятор ДЦ (чтобы самому задавать направления движений) и возможно ли к ней прицепить метатрейдер для тестирования

Лучше прочитать вот эту тему http://forexsystemsru.com/poleznye-dlya-treidera-utility/74121-testirovanie-s-kachestvom-99-9%25-v-mt4.html
 

SMIT90

Интересующийся
Здравствуйте! Такой вопрос - возможно ли создать советник на рендж барах?
 
Верх