Ответ
 
Опции темы
Старый 03.06.2012, 12:17   #121 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9025
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,679
Поблагодарили 9,025 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от Pavel555 Посмотреть сообщение
Хочу добавить, что алерт должен брать откуда-то сигнал, как правило если просто прописать сточку Alert(); не там, он будет сигналить постоянно, в лучшем случае молчать.
Давай кокретный пример. Разберём.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Pavel555 (03.06.2012), strannik-ps (03.06.2012)
Старый 03.06.2012, 12:29   #122 (permalink)
Заблокирован
 
Аватар для Pavel555
 
Регистрация: 10.02.2012
Сообщений: 22
Репутация: 17
Pavel555
Сказал(а) спасибо: 304
Поблагодарили 16 раз(а) в 9 сообщениях
Поинты: 0
Сообщение от eevviill Посмотреть сообщение
Давай кокретный пример. Разберём.
Я не селен в программировании но заметил один программист на этом форуме добавляет один и тотже код алерта единственное различие которое я заметил это в этих строчках
if (g_ibuf_100[Signal_Bar]!= EMPTY_VALUE && g_ibuf_100[Signal_Bar+1] == EMPTY_VALUE)

if (Buffer1[Signal_Bar]!= EMPTY_VALUE && Buffer1[Signal_Bar+1] == EMPTY_VALUE)
Весь код выкладывать не буду, я не автор и может ему это не понравится.
Pavel555 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
strannik-ps (03.06.2012)
Старый 03.06.2012, 12:54   #123 (permalink)
 
Аватар для strannik-ps
 
Регистрация: 05.01.2012
Сообщений: 1,149
Репутация: 7844
strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps
Сказал(а) спасибо: 3,957
Поблагодарили 7,800 раз(а) в 1,882 сообщениях
Поинты: 82
Сообщение от Pavel555 Посмотреть сообщение
Я не селен в программировании но заметил один программист на этом форуме добавляет один и тотже код алерта единственное различие которое я заметил это в этих строчках
if (g_ibuf_100[Signal_Bar]!= EMPTY_VALUE && g_ibuf_100[Signal_Bar+1] == EMPTY_VALUE)

if (Buffer1[Signal_Bar]!= EMPTY_VALUE && Buffer1[Signal_Bar+1] == EMPTY_VALUE)
Весь код выкладывать не буду, я не автор и может ему это не понравится.
Да значение берется из

SetIndexBuffer()
strannik-ps вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (03.06.2012), hiys (19.02.2013)
Старый 03.06.2012, 13:02   #124 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9025
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,679
Поблагодарили 9,025 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от Pavel555 Посмотреть сообщение
Я не селен в программировании но заметил один программист на этом форуме добавляет один и тотже код алерта единственное различие которое я заметил это в этих строчках
if (g_ibuf_100[Signal_Bar]!= EMPTY_VALUE && g_ibuf_100[Signal_Bar+1] == EMPTY_VALUE)

if (Buffer1[Signal_Bar]!= EMPTY_VALUE && Buffer1[Signal_Bar+1] == EMPTY_VALUE)
Весь код выкладывать не буду, я не автор и может ему это не понравится.
При чём здесь то что ты выложил к Alert?

Короче пример.
Алерт при пересечении МА цены сверху вниз.
PHP код:
double MA1 iMA(Symbol(),0,60,0,MODE_LWMA,PRICE_CLOSE,1); 
double MA2 iMA(Symbol(),0,60,0,MODE_LWMA,PRICE_CLOSE,2);
 
if((
MA2>Close[2]) && MA1<Close[1]) Alert("MA under Price"); 
или так
PHP код:
double MA1 iMA(Symbol(),0,60,0,MODE_LWMA,PRICE_CLOSE,1); 
double MA2 iMA(Symbol(),0,60,0,MODE_LWMA,PRICE_CLOSE,2);
 
int sig 1;
if((
MA2>Close[2]) && MA1<Close[1]) sig 2;
Alert(sig); 
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Pavel555 (03.06.2012), strannik-ps (03.06.2012)
Старый 03.06.2012, 13:19   #125 (permalink)
 
Аватар для strannik-ps
 
Регистрация: 05.01.2012
Сообщений: 1,149
Репутация: 7844
strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps
Сказал(а) спасибо: 3,957
Поблагодарили 7,800 раз(а) в 1,882 сообщениях
Поинты: 82
Сообщение от eevviill Посмотреть сообщение
При чём здесь то что ты выложил к Alert?
Он наверно имел в виду этот код.
PHP код:
   static int PrevSignal 0;
   static 
datetime PrevTime 0;
   if(
Signal_Bar && Time[0] <= PrevTime 
          return(
0);    
   
PrevTime Time[0];
   if(
PrevSignal <= || !A_EM)
      {
 if (
ibuf_84[Signal_Bar]!= EMPTY_VALUE && ibuf_84[Signal_Bar+1] == EMPTY_VALUE
      {
   
PrevSignal 1;
      
Alert("SkdonТrend ",Period()," ",Symbol()," BUY");
       }
    } 
strannik-ps вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (03.06.2012), Pavel555 (03.06.2012)
Старый 03.06.2012, 13:30   #126 (permalink)
Заблокирован
 
Аватар для Pavel555
 
Регистрация: 10.02.2012
Сообщений: 22
Репутация: 17
Pavel555
Сказал(а) спасибо: 304
Поблагодарили 16 раз(а) в 9 сообщениях
Поинты: 0
Сообщение от strannik-ps Посмотреть сообщение
Он наверно имел в виду этот код.
PHP код:
   static int PrevSignal 0;
   static 
datetime PrevTime 0;
   if(
Signal_Bar && Time[0] <= PrevTime 
          return(
0);    
   
PrevTime Time[0];
   if(
PrevSignal <= || !A_EM)
      {
 if (
ibuf_84[Signal_Bar]!= EMPTY_VALUE && ibuf_84[Signal_Bar+1] == EMPTY_VALUE
      {
   
PrevSignal 1;
      
Alert("SkdonТrend ",Period()," ",Symbol()," BUY");
       }
    } 
Да я и имею ввиду что отличаются
if (ibuf_84[Signal_Bar]!= EMPTY_VALUE && ibuf_84[Signal_Bar+1] == EMPTY_VALUE)

авот с другого индикатора
if (g_ibuf_100[Signal_Bar]!= EMPTY_VALUE && g_ibuf_100[Signal_Bar+1] == EMPTY_VALUE)
А как понять что надо брать из SetIndexBuffer ведь их там много бывает разных?
Заранее спасибо.
Pavel555 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 03.06.2012, 13:51   #127 (permalink)
 
Аватар для strannik-ps
 
Регистрация: 05.01.2012
Сообщений: 1,149
Репутация: 7844
strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps strannik-ps
Сказал(а) спасибо: 3,957
Поблагодарили 7,800 раз(а) в 1,882 сообщениях
Поинты: 82
Сообщение от Pavel555 Посмотреть сообщение
Да я и имею ввиду что отличаются
if (ibuf_84[Signal_Bar]!= EMPTY_VALUE && ibuf_84[Signal_Bar+1] == EMPTY_VALUE)

авот с другого индикатора
if (g_ibuf_100[Signal_Bar]!= EMPTY_VALUE && g_ibuf_100[Signal_Bar+1] == EMPTY_VALUE)
А как понять что надо брать из SetIndexBuffer ведь их там много бывает разных?
Заранее спасибо.
Есть 2 варианта
1 Ознакомится с этим _http://docs.mql4.com/ru/customind и отпадут многие вопросы.
2 Методом научного тыка.
strannik-ps вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (03.06.2012), Pavel555 (03.06.2012)
Старый 03.06.2012, 14:08   #128 (permalink)
Заблокирован
 
Аватар для Pavel555
 
Регистрация: 10.02.2012
Сообщений: 22
Репутация: 17
Pavel555
Сказал(а) спасибо: 304
Поблагодарили 16 раз(а) в 9 сообщениях
Поинты: 0
Сообщение от strannik-ps Посмотреть сообщение
Есть 2 варианта
1 Ознакомится с этим _http://docs.mql4.com/ru/customind и отпадут многие вопросы.
2 Методом научного тыка.
1 вариант остовляет еще больше вопросов
2 вариант порадовал
Похоже надо сначало с самого элементарного начинать, а то меня занесло далеко.
Pavel555 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 03.06.2012, 15:45   #129 (permalink)
Активный участник
За призовое место в конкурсе 

 
Аватар для falerx
 
Регистрация: 20.11.2011
Сообщений: 88
Репутация: 108
falerx falerx
Сказал(а) спасибо: 1,320
Поблагодарили 107 раз(а) в 44 сообщениях
Поинты: 1
Сообщение от eevviill Посмотреть сообщение
Сегодня будем перебирать ордера. Для чего это нужно?
Для всего что связано с операциями по ордерам кроме открытия.
Тоесть сначало надо ордер выбрать чтобы потом модифицировать, закрыть, удалить его.

Пример.
PHP код:
 1)for(int i=OrdersTotal()+1i>=0i--)
 {
 
2)OrderSelect(i,SELECT_BY_POS);
 {
 
3)if(OrderMagicNumber()==magic)
 {
 
4)if(OrderType()==OP_BUY...) OrderClose(OrderTicket(),Lot,Bid,slippage,Yellow); 
 }
 }
 } 
1)Собственно это и есть перебор ордеров функцией for.
1.1)Начинаем с общего количества ордеров+1.
1.2)Будем продолжать пока ордеров будет 0 или больше.
1.3)На каждом переборе будем уменьшать количество перебираемых ордеров на 1.
2)Функция OrderSelect(); С помощью неё мы выбираем конкретный ордер. В нашем слачае (порядковый номер в терминале i, из тех что находятся в закладке торговля).
3)После того как выбрали ордер проверяем или это ордер нашего советника. Проверку делаем с помощью меджик намбера, который должен совпадать с меджиком открытого ордера.
4)Здесь уже проводятся конкретные действия. Например если ордер бай и
цена пересекла МА сверху вниз закрываем ордер.
Добрый день!
Лучше, наверное, брать со знаком "минус":
OrdersTotal()-1.
falerx вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 03.06.2012, 17:35   #130 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9025
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,679
Поблагодарили 9,025 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от falerx Посмотреть сообщение
Добрый день!
Лучше, наверное, брать со знаком "минус":
OrdersTotal()-1.
И что выйдет? Допустим у нас всего 6 ордеров. По твоей схеме мы начинаем перебирать с 5-го. Так как мы идём от конца к началу, то выйдет что мы 6-ой ордер не перебрали.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
Pavel555 (04.06.2012), spezdetal (03.06.2012), strannik-ps (03.06.2012)
Старый 03.06.2012, 18:06   #131 (permalink)
Активный участник
 
Аватар для spezdetal
 
Регистрация: 04.05.2009
Сообщений: 91
Репутация: 89
spezdetal
Сказал(а) спасибо: 45
Поблагодарили 91 раз(а) в 41 сообщениях
Поинты: 4
Спасибо!! Просто и доходчиво

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
"Не бойся идти на встречу переменам! Бойся быть их рабом..."
spezdetal вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (03.06.2012)
Старый 05.06.2012, 19:04   #132 (permalink)
Активный участник
За призовое место в конкурсе 

 
Аватар для falerx
 
Регистрация: 20.11.2011
Сообщений: 88
Репутация: 108
falerx falerx
Сказал(а) спасибо: 1,320
Поблагодарили 107 раз(а) в 44 сообщениях
Поинты: 1
Сообщение от eevviill Посмотреть сообщение
И что выйдет? Допустим у нас всего 6 ордеров. По твоей схеме мы начинаем перебирать с 5-го. Так как мы идём от конца к началу, то выйдет что мы 6-ой ордер не перебрали.
В mql все исчисления начинаются обычно с ноля. При 6 ордерах в Вашем примере кода (с +1) перебор происходит от 7 до 0, т.е. 8 раз (позиций) при шести ордерах...

Вот выдрал из учебника:
Миниатюры:
Нажмите на изображение для увеличения
Название: book_OrdSel.jpg
Просмотров: 47
Размер:	69.6 Кб
ID:	77929  
falerx вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.06.2012, 16:18   #133 (permalink)
Программиров
 
Аватар для expforex
 
Регистрация: 11.01.2009
Сообщений: 2,134
Репутация: 2148
expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex
Сказал(а) спасибо: 136
Поблагодарили 2,090 раз(а) в 733 сообщениях
Поинты: 267
Сообщение от eevviill Посмотреть сообщение
Сегодня будем перебирать ордера. Для чего это нужно?
Для всего что связано с операциями по ордерам кроме открытия.
Тоесть сначало надо ордер выбрать чтобы потом модифицировать, закрыть, удалить его.

Пример.
PHP код:
 1)for(int i=OrdersTotal()+1i>=0i--)
 {
 
2)OrderSelect(i,SELECT_BY_POS);
 {
 
3)if(OrderMagicNumber()==magic)
 {
 
4)if(OrderType()==OP_BUY...) OrderClose(OrderTicket(),Lot,Bid,slippage,Yellow); 
 }
 }
 } 
1)Собственно это и есть перебор ордеров функцией for.
1.1)Начинаем с общего количества ордеров+1.
1.2)Будем продолжать пока ордеров будет 0 или больше.
1.3)На каждом переборе будем уменьшать количество перебираемых ордеров на 1.
2)Функция OrderSelect(); С помощью неё мы выбираем конкретный ордер. В нашем слачае (порядковый номер в терминале i, из тех что находятся в закладке торговля).
3)После того как выбрали ордер проверяем или это ордер нашего советника. Проверку делаем с помощью меджик намбера, который должен совпадать с меджиком открытого ордера.
4)Здесь уже проводятся конкретные действия. Например если ордер бай и
цена пересекла МА сверху вниз закрываем ордер.
ордеров 10,
Вы ставите 10+1 пока i>=0
означает что он буде перебирать 12 ордеров. А в реале их 10
Все массивы имеют первый элемент под пунктом 0, в Вашем примере нужно писать так:

for(int i=OrdersTotal()-1; i>=0; i--)
Тогда он будет правильно перебирать ордера.

Удачи

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Советники на заказ! admin@expforex.com
Говорим Спасибо
expforex вне форума   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
cfifcfif (17.06.2012), eevviill (17.06.2012), Milord (31.01.2015)
Старый 17.06.2012, 16:27   #134 (permalink)
Программиров
 
Аватар для expforex
 
Регистрация: 11.01.2009
Сообщений: 2,134
Репутация: 2148
expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex
Сказал(а) спасибо: 136
Поблагодарили 2,090 раз(а) в 733 сообщениях
Поинты: 267
Сообщение от eevviill Посмотреть сообщение
Добрый день. Сегодня мы сделаем скрипт котрый будет закрывать ордера.
............................


Правильней будет так:

PHP код:
#property copyright "eevviill"
#property show_inputs
extern string TO "??? ?????? ??? ????????";
extern bool Buy false;
extern bool Sell false;
extern bool BuyStop false;
extern bool SellStop false;
extern bool BuyLimit false;
extern bool SellLimit false;
extern bool Close_all_lots true;
extern double Close_lot 0.1;
double Lot;
extern int Magic 0;
extern int Slippage 4;
 

int start()
  {

for (
int i=OrdersTotal()-1i>=0i--)
{
if (
OrderSelect(i,SELECT_BY_POS)){
if(
Close_all_lots==trueLot=OrderLots();
if(
Close_all_lots==falseLot=Close_lot;
  
 if(
OrderMagicNumber()== Magic && OrderType()==OP_BUY && Buy==trueOrderClose(OrderTicket(),Lot,Bid,Slippage,Yellow);
 if(
OrderMagicNumber()== Magic && OrderType()==OP_SELL && Sell==trueOrderClose(OrderTicket(),Lot,Ask,Slippage,Yellow);
 if( 
OrderMagicNumber()== Magic && OrderType()==OP_BUYSTOP && BuyStop==trueOrderDelete(OrderTicket());
 if( 
OrderMagicNumber()== Magic && OrderType()==OP_SELLSTOP && SellStop==trueOrderDelete(OrderTicket());
 if(
OrderMagicNumber()== Magic && OrderType()==OP_BUYLIMIT && BuyLimit==trueOrderDelete(OrderTicket());
 if( 
OrderMagicNumber()== Magic && OrderType()==OP_SELLLIMIT && SellLimit==trueOrderDelete(OrderTicket());
}
}
   return(
0);
  } 
Ибо в Вашем примере Lot = будет вычисляться неправильно, ибо ордер мы не выбрали а уже лот ищем.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Советники на заказ! admin@expforex.com
Говорим Спасибо
expforex вне форума   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
cfifcfif (17.06.2012), eevviill (17.06.2012), hiys (19.02.2013)
Старый 20.06.2012, 13:36   #135 (permalink)
Почётный гражданин
 
Аватар для kamilkz
 
Регистрация: 10.03.2010
Сообщений: 280
Репутация: 326
kamilkz kamilkz kamilkz kamilkz
Сказал(а) спасибо: 1,718
Поблагодарили 325 раз(а) в 124 сообщениях
Поинты: 18
Подскажите , пожалуйста, как можно среди всех открытых ордеров выделить наибольший лот (его чисовое значение), в виде примера, если можно.
kamilkz на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 20.06.2012, 15:38   #136 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,286
Репутация: 1985
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 358
Поблагодарили 1,914 раз(а) в 1,084 сообщениях
Поинты: 1310
Отправить сообщение для Ugar с помощью ICQ
Сообщение от kamilkz Посмотреть сообщение
Подскажите , пожалуйста, как можно среди всех открытых ордеров выделить наибольший лот (его чисовое значение), в виде примера, если можно.
Код:
int total=OrdersTotal();
double MaximumLot=0;
for(int p=0; p<total; p++)
   {
   OrderSelect(p, SELECT_BY_POS, MODE_TRADES);
   MaximumLot=MathMax(MaximumLot,OrderLots());
   }
В переменной MaximumLot будет максимальный лот среди найденых, не исторических ордеров.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (20.06.2012), kamilkz (20.06.2012)
Старый 20.06.2012, 15:57   #137 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9025
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,679
Поблагодарили 9,025 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™

По умолчанию Урок 15 - выбор наибольшего лота среди открытых ордеров


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


Пишу всё необходимое для нахождения.


ПРИМЕР.
PHP код:
int magic 0;

double lot;
double max_lot 0;



int start()
  {
  
for(
int i=OrdersTotal()+1i>=0i--)
 {
 
OrderSelect(i,SELECT_BY_POS);
 {
 if(
OrderMagicNumber()==magic)
 {
 
lot=OrderLots();
 
 
1)if(lot>max_lotmax_lot=lot;
 }
 }
 }  

 
Alert(max_lot);

 
   return(
0);
  } 

ПОЯСНЕНИЕ.
1)Здесь мы указали что при каждом переборе ордеров, если лот выбраного ордера больше чем максимальный лот, то максмиальному лоту присваиваем значения лота выбраного ордера.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
6 пользователя(ей) сказали cпасибо:
chocolate (02.09.2012), expforex (20.06.2012), hiys (19.02.2013), kamilkz (20.06.2012), Milord (31.01.2015), Viko2000 (14.05.2015)
Старый 20.06.2012, 16:13   #138 (permalink)
Программиров
 
Аватар для expforex
 
Регистрация: 11.01.2009
Сообщений: 2,134
Репутация: 2148
expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex expforex
Сказал(а) спасибо: 136
Поблагодарили 2,090 раз(а) в 733 сообщениях
Поинты: 267
Сообщение от eevviill Посмотреть сообщение
По многочисленым заявкам сегодня будем искать величину наибольшей открытой позиции.
почему у Вас всегда OrdersTotal()+1;
Надо писать OrdersTotal()-1;Запомните это как библию
или же при i=0 просто OrdersTotal()

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Советники на заказ! admin@expforex.com
Говорим Спасибо

Последний раз редактировалось expforex; 20.06.2012 в 16:19.
expforex вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Milord (31.01.2015), Viko2000 (14.05.2015)
Старый 20.06.2012, 17:01   #139 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,286
Репутация: 1985
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 358
Поблагодарили 1,914 раз(а) в 1,084 сообщениях
Поинты: 1310
Отправить сообщение для Ugar с помощью ICQ
Сообщение от expforex Посмотреть сообщение
почему у Вас всегда OrdersTotal()+1;
Надо писать OrdersTotal()-1;Запомните это как библию
или же при i=0 просто OrdersTotal()
Ну нравится человеку сначала выбрать 2 не существующих ордера прежде чем перейти к существующему, чё такого.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (20.06.2012), Milord (31.01.2015)
Старый 20.06.2012, 18:45   #140 (permalink)
Почётный гражданин
 
Аватар для kamilkz
 
Регистрация: 10.03.2010
Сообщений: 280
Репутация: 326
kamilkz kamilkz kamilkz kamilkz
Сказал(а) спасибо: 1,718
Поблагодарили 325 раз(а) в 124 сообщениях
Поинты: 18
В функции:

if (OrderSelect(i,SELECT_BY_POS) && (OrderType()==OP_BUY || OrderType()==OP_SELL))

выбор будет произведен только среди открытых ордеров (без участия отложенных)? Если я не прав, поправьте.
А еще: в скрипт закрывающий ордера, можно добавить проверку по ТП и СЛ и затем только закрывать ордера?

Последний раз редактировалось kamilkz; 20.06.2012 в 18:53.
kamilkz на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 06:37. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO