[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 514

 
sss2019:

А вот такой еще момент, этот ордер открываля по какому то фракталу, на фрактале. Если последний ордер найден, можно как нибудь узнать по какому фракталу он открылся?

Найдите бар, на котором был открыт ордер ( iBarShift(Symbol(), Period(), OrderOpenTime()) )


На этом баре и есть тот фрактал.

 
Reshetov:


От текущей цены пипсы ставил и 150 и 300 всё равно не выставляется.
 
a.DarkAngel:

Здравствуйте!

Почему у меня удаляет только BUYSTOP, а SELLLIMIT не удаляет?? Хотя открыты два ордера!

if (Hour()==19 && Minute()==00 && Кризис_1989==true)
            {
             for( int i=1; i<=OrdersTotal(); i++)          
      {
             if(OrderSelect(i-1,SELECT_BY_POS)==true) 
               {                                       
                if(OrderType()==OP_SELLLIMIT  && OrderSymbol()==Symbol())
                  {
                  OrderDelete(OrderTicket()); 
                  }//if
  
                if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())
                  {
                  OrderDelete(OrderTicket()); 
                  }//if
               }//if
            return(0);
            }
          }   
if (Hour()==19 && Minute()==00 && Кризис_1989==true) {
   for (int i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS)) {                                       
         if (OrderSymbol()!=Symbol())     continue;
         if (OrderType()==OP_SELLLIMIT)   OrderDelete(OrderTicket()); 
         if (OrderType()==OP_BUYSTOP)     OrderDelete(OrderTicket()); 
         }
      }
   }    

Как на детской картинке: найди десять отличий... :)

Когда удаляете ордера, цикл нужно с конца списка делать. И return(0) у вас внутри цикла.

 
Andreyu:

Здравствуйте всем!

Не выставляется ордер если указать стоп лосс:


Брокер позволяет устанавливать SL при открытии ордера?

И где NormalizeDouble?

 

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

Этот советник в случая закрытия по лосю, открывает зделку в туже сторону, где был стоплос. Но с лотом в два раза больше, вот этим выражением: lot=lot*koef;

Мне очень надо, чтобы он умножал лосевые зделки через заданное количество раз. Тоесть 0.01,0.01,0,01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0,08...... и только.

Сколько уже всяких счетчиков переделал... НЕТТО

За 4 года не вникал в язык, пока не преперло. Вот весь код для размышления...

Очень благодарю!!!

int X=0;
extern double       lot=0.01;
extern double       koef=1.5;
extern int       SL=10;
extern int       TP=10;
double dl;
double a;
int init()
 {
 a=lot;
  return(0);
 }
int deinit()
 {
  return(0);
 }
int start()
{   

if(OrdersTotal() == 0 && X==1)
             { 
             if (Close[0]>dl){lot=a;}              X=0;
             }             
if(OrdersTotal() == 0 && X==2)
             { 
             if (Close[0]<dl){lot=a;}
             X=0;
             }     
if (OrdersTotal() == 0 && Close[1]>Open[1]) 
                          {
        dl=Close[0];
OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SL*0.0001,Ask+TP*0.0001,"",14774,0,Blue); 

  lot=lot*koef;
                           X=1;            
                          }
   if(OrdersTotal() == 0 && && Close[1]<Open[1]) 
                          {
    dl=Close[0];
OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red); 
                           lot=lot*koef;
                           X=2;
                          } 
   return(0);
}
 
Andreyu:

От текущей цены пипсы ставил и 150 и 300 всё равно не выставляется.

Скорее всего у Вас счет у одного из тех брокеров, который запрещает установку ордеров с тейками и лосями.

Уточняйте информацию в саппорте брокера - на данном форуме обсуждать брокеров запрещено правилами.

 
edyuson:

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

Этот советник в случая закрытия по лосю, открывает зделку в туже сторону, где был стоплос. Но с лотом в два раза больше, вот этим выражением: lot=lot*koef;

Мне очень надо, чтобы он умножал лосевые зделки через заданное количество раз. Тоесть 0.01,0.01,0,01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0,08...... и только.

Сколько уже всяких счетчиков переделал... НЕТТО

За 4 года не вникал в язык, пока не преперло. Вот весь код для размышления...

Очень благодарю!!!

мучаюсь с этой же темой - а где в коде фиксируется предыдущая лоссовая сделка
 **** Close[1]>Open[1] // это не лосс!!!
 
YOUNGA:
мучаюсь с этой же темой - а где в коде фиксируется предыдущая лоссовая сделка
**** Close[1]>Open[1] // это не лосс!!!
 // это свечи закрытия>открытия
if(OrdersTotal() == 0 && X==1)
             { 
             if (Close[0]>dl){lot=a;} 
             X=0;
             }             
if(OrdersTotal() == 0 && X==2)
             { 
             if (Close[0]<dl){lot=a;}
             X=0;
             }     
 // тут регулеровка


 
edyuson:

ты сравниваешь клозы разных свечей причем здесь лосс?
 
YOUNGA:
ты сравниваешь клозы разных свечей причем здесь лосс?

я ни стрвниваю, эт не моя головоломка. просто нашел похожий алгоритм, который мне надо и пытаюсь доделать, чеп совсем как мне надо. https://www.mql5.com/ru/code/9927 Че убрал, че оставил.

 if(OrdersTotal() == 0 && Close[1]<Open[1])                                        //Если ордеров 0 и закрытие свечи 1<Открытие свечи 1 
  dl=Close[0];                                                                     //эт не дошло толком                 
 OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red)  //тело открывает на продажу
      
         

мне это охота 0.01,0.01,0,01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0,08......

Причина обращения: