[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 894

 
artmedia70:
Это вы к чему? Вроде как значит можно и временем поинтересоваться... или здоровьем... :))))))

Это я к напоминанию. Я книгу читаю, но есть моменты, которые нужно разъяснить- вот я их и пишу. а ответа порой нет.

пожалуйста - не поймите агрессивно, я только с добрых соображений!

 
belck:

Это я к напоминанию. Я книгу читаю, но есть моменты, которые нужно разъяснить- вот я их и пишу. а ответа порой нет.

 


Вы оплачиваете ответы? нет? или Вас игнорируют? или Вам ктонить чем то обязан?

ЗЫ: я часто заглядываю в этот топик, чем могу, тем помогаю, но при условии, что задавший человек вопрос  , как минимум сам понимает, что он спросил, у Вас же Ваша гора вопросов выглядит как лень читать - разжуйте мне

 
Привет ! НЕ могу понять в чём косяк ???? Не модифицирует рыночный ордер
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // расчёт стопа для бай позиций//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // расчёт профита для бай позиций//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); // расчёт стопа для селл позиций//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);

//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("ордер есть", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("ошибка", GetLastError());

}}}}
return(0);}

В ЧЁМ ТРАБЛ ПОМОГИТЕ ...........?????
 
IgorM:


Вы оплачиваете ответы? нет? или Вас игнорируют? или Вам ктонить чем то обязан?

ЗЫ: я часто заглядываю в этот топик, чем могу, тем помогаю, но при условии, что задавший человек вопрос, как минимум сам понимает, что он спросил, у Вас же Ваша гора вопросов выглядит как лень читать - разжуйте мне

я же писал - не воспринимайте это через чур. ведь мы не для ссор тут находимся. Мне ведь тоже не нравится, когда кто то отказывается помочь - то есть сам за меня решает, надо мне совет или надо почитать книгу. Как говорится - умничать!!

Еще раз ребята прошу не принимать это агрессивно или эта моя просьба все же вызывает противоречие, если да, то больше ее писать не буду.

 
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
  {
    if(OrderSelect(i, SELECT_BY_POS))
      {
        if(OrderSymbol()==Symbol())
            n++;
      }
  }
if (total == 1)
  {
    for (int k=total-1; k>=0; k--)
      {
        if(OrderSelect(k, SELECT_BY_TICKET))
          {
            Alert("ордер есть ", k);
            if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
              {
                OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
                Alert("ошибка ", GetLastError());
              }
          }
      }
  }
return(0);
Попробуйте этот код.
 

Никто не знает скрипт "трейлинг стоп" который срабатывает по уровням: то есть цена достигла 150 - стоп 130, затем достигла 180 - стоп 170 (например)(уровни сам вбиваешь)

Заранее спасибо. 

 
VOLDEMAR:
Привет ! НЕ могу понять в чём косяк ???? Не модифицирует рыночный ордер
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // расчёт стопа для бай позиций//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // расчёт профита для бай позиций//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); // расчёт стопа для селл позиций//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);

//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("ордер есть", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("ошибка", GetLastError());

}}}}
return(0);}

В ЧЁМ ТРАБЛ ПОМОГИТЕ ...........?????

Вы выбираете позу по тикету. Но не проверяете ГДЕ именно она есть... Позиция может быть в уже закрытых:

bool OrderSelect( int index, int select, int pool=MODE_TRADES)

Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.
 
AlexAlex:

Никто не знает скрипт "трейлинг стоп" который срабатывает по уровням: то есть цена достигла 150 - стоп 130, затем достигла 180 - стоп 170 (например)(уровни сам вбиваешь)

Заранее спасибо.

Поиск по сайту "трейлинг" или "трал" - найдёте.
 
VOLDEMAR:
Привет ! НЕ могу понять в чём косяк ???? Не модифицирует рыночный ордер

вот так по пробуй:

slb = 25; // расчёт стопа для бай позиций//
tpb = 25; // расчёт профита для бай позиций//
sls = 25; // расчёт стопа для селл позиций//
tps = 25; 

//================================================== ==================//
int start {
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-slb*Point,Ask+tpb*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }

}
 
AlexAlex:

Никто не знает скрипт "трейлинг стоп" который срабатывает по уровням: то есть цена достигла 150 - стоп 130, затем достигла 180 - стоп 170 (например)(уровни сам вбиваешь)

Заранее спасибо.

https://www.mql5.com/ru/code/7108 .No.4
Причина обращения: