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

 
waroder:


как я понял (надеюсь правильно:)) Zolotai хочет снять данные с двух операторов цикла и записать их в текстовые файлы. С каждого в отдельный файл. Далее он хочет с этих файлов данные забить в массивы. Потом эти два массива объеденить в один так, чтобы данные с двух операторов не смешивались, и при этом соотносились друг с другом по каждому бару.

как то так))))


 
waroder:


как я понял (надеюсь правильно:)) Zolotai хочет снять данные с двух операторов цикла и записать их в текстовые файлы. С каждого в отдельный файл. Далее он хочет с этих файлов данные забить в массивы. Потом эти два массива объеденить в один так, чтобы данные с двух операторов не смешивались, и при этом соотносились друг с другом по каждому бару.

как то так))))

А зачем через ж? Сразу заносить в многомерный массив. В первом измерении индексация по времени(барам)- в остальных данные массивов. И сортируй все данные по первому измерению как хошь.
 

Народ, нужна помощь, из кода который ниже, выполняется только вторая часть, когда sellstop выставить нужно, а buystop почему-то не выставляется, хотя все условия соблюдены, до самого чёт не доходит в чём дело))

if (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

if (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

 

Ну, раз ты точно знаешь, что ордер с номером 2 у тебя селл, то тебе остается только нормализовать цену, стоп и тейк.

И смотри логи советника.

 

Добрый день, подскажите пожалуйста - сову ищу или скрипт:

Есть уровень ордера есть стоп и 3 тейкпрофита, необходимо чтобы при достижении определенного уровня например первого тр ордер закрывался определенной частью (задаваемой самому) а оставшая часть переводилась на уровень, который тоже я сам задаю.:

Пример

ордер на 1,5800 стоп 1,5750 1 тр - 1,5850 2тп - 1,5900 3 тп - 1,5950, так вот при достижении 1,5850 допустим закрывался 40% лота, остальное на 1,5800 (т.е. в бу) на 2 тп 20% а остальное перенести на 1,5850 ну и 3 тр полное закрытие.

Самое важное чтобы величины я мог сам менять в зависимости от ситуации.

 
zaqwsx123:

Народ, нужна помощь, из кода который ниже, выполняется только вторая часть, когда sellstop выставить нужно, а buystop почему-то не выставляется, хотя все условия соблюдены, до самого чёт не доходит в чём дело))

if (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

if (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Point,3,b-25*Point,b+50*Point,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

Тикет #2, равно, как и #4, может только в тестере появиться. На реале/демо это утопия. При выборе ордера по тикету сначала нужно убедиться, что ордер вообще выбран, затем проверить время его закрытия. Если оно == 0, значит ордер выбран из списка рыночных ордеров. Если время закрытия ордера > 0, значит ордер уже закрыт и выбран из списка закрытых ордеров. При отправке торгового запроса на сервер все цены должны быть во-первых свежими (самыми последними; для этого цены нужно брать через MarketInfo(), либо RefreshRates() перед отсылкой запроса), во вторых цены должны быть все нормализованы до точности Digits
 
Villcommen:

Добрый день, подскажите пожалуйста - сову ищу или скрипт:

Есть уровень ордера есть стоп и 3 тейкпрофита, необходимо чтобы при достижении определенного уровня например первого тр ордер закрывался определенной частью (задаваемой самому) а оставшая часть переводилась на уровень, который тоже я сам задаю.:

Пример

ордер на 1,5800 стоп 1,5750 1 тр - 1,5850 2тп - 1,5900 3 тп - 1,5950, так вот при достижении 1,5850 допустим закрывался 40% лота, остальное на 1,5800 (т.е. в бу) на 2 тп 20% а остальное перенести на 1,5850 ну и 3 тр полное закрытие.

Самое важное чтобы величины я мог сам менять в зависимости от ситуации.

В котобазе искали?
 

Ребята Подскажите вот какую хрень!!! Когда создаю новый индикатор, то у меня всегда проблема с выводом буфера на график. АВроде бы всё правильно написал, а значения никакие не показывает.... Я уже измучился....

#property copyright "nikelodeon"
#property link      ""
extern int k=5;
extern int k1=8;

#property indicator_chart_window
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
int init()
  {
SetIndexBuffer(0,Buffer2);         // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2,Red);// Линия
SetIndexBuffer(1,Buffer1);// Назначение массива буферу 
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2,Blue);// Линия
SetIndexStyle (2,DRAW_ARROW,STYLE_SOLID,1,Red);
SetIndexArrow (2,159);// Стиль линии 
SetIndexBuffer(2,Buffer3);
SetIndexEmptyValue(2,0.0);// Назначение массива буферу
SetIndexStyle (3,DRAW_ARROW,STYLE_SOLID,1,Blue);
SetIndexArrow (3,159);// Стиль линии 
SetIndexBuffer(3,Buffer4);// Назначение массива буферу 
SetIndexEmptyValue(3,0.0);
SetIndexStyle (4,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (4,159);// Стиль линии 
SetIndexBuffer(4,Buffer5);// Назначение массива буферу 
SetIndexEmptyValue(4,0.0);
SetIndexStyle (5,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (5,251);// Стиль линии 
SetIndexBuffer(5,Buffer6);// Назначение массива буферу 
SetIndexEmptyValue(5,0.0);
SetIndexStyle (6,DRAW_ARROW,STYLE_SOLID,2,Red);
SetIndexArrow (6,241);// Вход Бай
SetIndexBuffer(6,Buffer7);// Назначение массива буферу 
SetIndexEmptyValue(6,0.0);
SetIndexStyle (7,DRAW_ARROW,STYLE_SOLID,2,Blue);
SetIndexArrow (7,242);// Вход сел 
SetIndexBuffer(7,Buffer8);// Назначение массива буферу 
SetIndexEmptyValue(7,0.0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int i,b,limit;
limit=Bars;
if (b!=Bars){
b=Bars;
      for(i=limit; i>=0; i--){
      
      if ((setupUP(i,4,5)==1)) {Buffer5[i+1]=Low[i+1];} else Buffer5[i+1]=0;
      if ((setupDOWN(i,4,5)==1)){Buffer5[i+1]=High[i+1];} else Buffer5[i+1]=0;
      
      
      

      }
      
  Buffer5[i+1]=Low[i+1];    
}
 
   return(0);
  }
//+------------------------------------------------------------------+


int setupUP (int i, int k, int k1)
{
int num=0;
int setUP=0;
for (i=0; i>=100; i++){
 if((Close[i+1]<Close[i+k])) {num=num+1;}
 }
 
 if (num>=k1) {
               setUP=1;
               return (setUP);     
            }
return (0);
}

int setupDOWN (int i, int k, int k1)
{
int num=0;
int setUP=0;
 if((Close[i+1]>Close[i+k])) {num=num+1;}
 if (num>k1) {
               setUP=1;
               return (setUP);     
            }

}
Что сделать чтоб выводился пятый буфер???
 
zaqwsx123:

Народ, нужна помощь, из кода который ниже, выполняется только вторая часть, когда sellstop выставить нужно, а buystop почему-то не выставляется, хотя все условия соблюдены, до самого чёт не доходит в чём дело))

if (OrdersTotal()==2)

{

...

Чтобы правильно вставить код на форуме нажмите SRC

Вообще-то чтоб выбрать ордер надо делать через if

if (OrderSelect(2,SELECT_BY_TICKET))
{
  //--- действие
 
Ну что нет профи по моему вопросу????
Причина обращения: