Ответ
 
Опции темы
Старый 03.12.2014, 20:13   #3241 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547

По умолчанию Какой код трала более правильный???


Вопрос для профи MQL4,нашел два варианта функции трала, и сразу возникло 2 вопроса:
1) какой вариант кода более правильный и почему?
2) если ваш вариант более верный напишите его тут?
ЗАРАНЕЕ СПАСИБО!
PHP код:
//-----------------------------------1 вариант трала----------------------
void Traling_Stop_f()
{
  for(
int i=0i<OrdersTotal(); i++) { 
    if(!(
OrderSelect(iSELECT_BY_POSMODE_TRADES))) continue; 
    if(
OrderSymbol() != Symbol()) continue;        

    if(
OrderType()==OP_BUY) { 
      if(
Bid-OrderOpenPrice()>TrailingStop*Point&& Bid>=OrderOpenPrice()+TrailingStopStart*Point) { 
        if(
OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point
          
OrderModify(OrderTicket(), OrderOpenPrice(),Bid-TrailingStop*PointOrderTakeProfit(), 0CLR_NONE); 
      } 
    } 

    if(
OrderType()==OP_SELL) { 
      if(
OrderOpenPrice()-Ask>TrailingStop*Point && Ask<=OrderOpenPrice()-TrailingStopStart*Point) { 
        if(
OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point
          
OrderModify(OrderTicket(), OrderOpenPrice(),Ask+TrailingStop*PointOrderTakeProfit(), 0CLR_NONE); 
      }
    } 
  } 
  

PHP код:
//----------------------------------------2 вариант трала---------------
void Tral() {
  
for( 
int i=0i<OrdersTotal(); i++) 
  { 
   if(
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
    {if(
OrderSymbol()==Symbol())
      { if(
OrderType() == OP_BUY&&OrderMagicNumber()==MagicNumber)
         { if ( (
Bid-OrderOpenPrice( ) )>TrailingStart*Point
          { if (
OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point
            { 
ModifyStopLoss(Bid-TrailingStop*Point);
            
            }
           }
         }
        if (
OrderType()==OP_SELL&&OrderMagicNumber()==MagicNumber)
          { if ( 
OrderOpenPrice( ) -Ask>TrailingStart*Point)
             {if (
OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point || OrderStopLoss()==0)
               { 
ModifyStopLoss(Ask+TrailingStop*Point);
                 
                }
              }
           }
        }
      }
   }
 } 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 03.12.2014, 20:20   #3242 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
В первом сразу: нет проверки на совпадение MagicNumber.

PHP код:
if(BreakevenStart 0)
   {
      
//Print("Выставляем безубыток");
      
if(pos.type==POSITION_TYPE_BUY)
         if((
Bid openPricePos BreakevenStart symb.point) && stopLossPos == 0)
            
trade.PositionModify(_SymbolopenPricePos + (BreakevenProfit symb.point), takeProfitPos);
      
      if(
pos.type==POSITION_TYPE_SELL)
         if((
openPricePos Ask BreakevenStart symb.point) && stopLossPos == 0)
            
trade.PositionModify(_SymbolopenPricePos - (BreakevenProfit symb.point), takeProfitPos);
   }
   
if(
TrailingStart 0)
   {
      
//Print("Трал позиции");
      
if(pos.type==POSITION_TYPE_BUY)
         if(
Bid openPricePos TrailingStart symb.point)
            if((
stopLossPos Bid - (TrailingStop TrailingStep) * symb.point) || stopLossPos == 0)
               
trade.PositionModify(_SymbolBid TrailingStop symb.pointtakeProfitPos);
      
      if(
pos.type==POSITION_TYPE_SELL)
         if(
openPricePos Ask TrailingStart symb.point)
            if((
stopLossPos Ask + (TrailingStop TrailingStep) * symb.point) || stopLossPos == 0)
               
trade.PositionModify(_SymbolAsk TrailingStop symb.pointtakeProfitPos);
   } 
Пользую такой на mql5, думаю сможешь приспособить.

Последний раз редактировалось matro3; 03.12.2014 в 20:22.
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (03.12.2014)
Старый 04.12.2014, 12:08   #3243 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,250
Репутация: 1961
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 346
Поблагодарили 1,890 раз(а) в 1,067 сообщениях
Поинты: 1266
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Milord Посмотреть сообщение
Вопрос для профи MQL4,нашел два варианта функции трала, и сразу возникло 2 вопроса:
1) какой вариант кода более правильный и почему?
Для начала надо прийти к пониманию, а какой трал надо? Их ведь существует куча разных. И дело не в способе реализации кода, а в совершенно разных принципах работы трала.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Milord (04.12.2014), sega79 (04.12.2014)
Старый 04.12.2014, 13:28   #3244 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
помогите пожалуйста с написанием кода для подсчета ордеров суть такая есть сеточный советник и мне нужно посчитать сколько раз он открыл допустим сетку из 3 ордеров из четырех и т.д максимальное число колен заранее известно
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 14:59   #3245 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,681
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от max020780 Посмотреть сообщение
помогите пожалуйста с написанием кода для подсчета ордеров суть такая есть сеточный советник и мне нужно посчитать сколько раз он открыл допустим сетку из 3 ордеров из четырех и т.д максимальное число колен заранее известно
http://forexsystemsru.com/indikatory-foreks/69427-indikatory-ot-eevviill-5.html#post596494
CountOpenPositions
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 15:11   #3246 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Сообщение от eevviill Посмотреть сообщение
http://forexsystemsru.com/indikatory-foreks/69427-indikatory-ot-eevviill-5.html#post596494
CountOpenPositions
это немного не то нужно чтоб выводило и считало таким образом
серия из 1-го ордера = 1
серия из 2-х ордеров = 7
серия из 3-х ордеров = 4
серия из 4-х ордеров = 9
........
.........
серия из N ордеров = 3
а там считает сколько открытых ордеров и сколько отложенных
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 16:56   #3247 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,681
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от max020780 Посмотреть сообщение
это немного не то нужно чтоб выводило и считало таким образом
серия из 1-го ордера = 1
серия из 2-х ордеров = 7
серия из 3-х ордеров = 4
серия из 4-х ордеров = 9
........
.........
серия из N ордеров = 3
а там считает сколько открытых ордеров и сколько отложенных
Ну открывай серии с разными меджиками.
А в функцию подсчёта отправляй нужный меджик для подсчёта.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 17:07   #3248 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Сообщение от eevviill Посмотреть сообщение
Ну открывай серии с разными меджиками.
А в функцию подсчёта отправляй нужный меджик для подсчёта.
так не получится нужен более реальный способ решения я примитивно понимаю как это сделать но хотелось реализовать это грамотно
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 17:26   #3249 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от max020780 Посмотреть сообщение
это немного не то нужно чтоб выводило и считало таким образом
серия из 1-го ордера = 1
серия из 2-х ордеров = 7
серия из 3-х ордеров = 4
серия из 4-х ордеров = 9
........
.........
серия из N ордеров = 3
а там считает сколько открытых ордеров и сколько отложенных
Сообщение от max020780 Посмотреть сообщение
так не получится нужен более реальный способ решения я примитивно понимаю как это сделать но хотелось реализовать это грамотно
Ну а как ты на примитивном уровне понимаешь отличительные признаки серий?
У тебя что предусмотрено открытие нескольких серий на одном инструменте?
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 17:41   #3250 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Сообщение от AlexeyVik Посмотреть сообщение
Ну а как ты на примитивном уровне понимаешь отличительные признаки серий?
У тебя что предусмотрено открытие нескольких серий на одном инструменте?
вот я набрасал как я вижу этот код но это с точки зрения программирования я так понимаю полный бред хотелось чтоб код был грамотно написан и с возможностью в него добавить отдельной переменной количество серий а не так как я в ручную прописал условие для 12 серий и вывести комментом на экран


PHP код:
int series1=0;
int series2=0;
int series3=0;
int series4=0;
int series5=0;
int series6=0;
int series7=0;
int series8=0;
int series9=0;
int series10=0;
int series11=0;
int series12=0;
bool n_series1=true;
bool n_series2=true;
bool n_series3=true;
bool n_series4=true;
bool n_series5=true;
bool n_series6=true;
bool n_series7=true;
bool n_series8=true;
bool n_series9=true;
bool n_series10=true;
bool n_series11=true;
bool n_series12=true;


int NumberOfPositionstring sy ""int mn=-1){
int ik=OrdersTotal(), kp=0;

  if (
sy=="0"sy=Symbol();
  for (
i=0i<ki++) {
    if (
OrderSelect(iSELECT_BY_POSMODE_TRADES)) {
      if (
OrderSymbol()==sy || sy=="") {
         if(
mn<0|| OrderMagicNumber()=magic)    kp++;
          
        }
    }
  }


void OnTick()
  {
//---
if(NumberOfPosition(Symbol(),-1)==0){n_series1=true;n_series2=true;n_series3=true;n_series4=true;n_series5=true;
n_series6=true;n_series7=true;n_series8=true;n_series9=true;n_series10=true;n_series11=true;n_series12=true;}
if(
NumberOfPosition(Symbol(),-1)==1&&n_series1){series1++;n_series1=false;}
if(
NumberOfPosition(Symbol(),-1)==2&&n_series2){series1--;series2++;n_series2=false;}
if(
NumberOfPosition(Symbol(),-1)==3&&n_series3){series2--;series3++;n_series3=false;}
if(
NumberOfPosition(Symbol(),-1)==4&&n_series4){series3--;series4++;n_series4=false;}
if(
NumberOfPosition(Symbol(),-1)==5&&n_series5){series4--;series5++;n_series5=false;}
if(
NumberOfPosition(Symbol(),-1)==6&&n_series6){series5--;series6++;n_series6=false;}
if(
NumberOfPosition(Symbol(),-1)==7&&n_series7){series6--;series7++;n_series7=false;}
if(
NumberOfPosition(Symbol(),-1)==8&&n_series8){series7--;series8++;n_series8=false;}
if(
NumberOfPosition(Symbol(),-1)==9&&n_series9){series8--;series9++;n_series9=false;}
if(
NumberOfPosition(Symbol(),-1)==10&&n_series10){series9--;series10++;n_series10=false;}
if(
NumberOfPosition(Symbol(),-1)==11&&n_series11){series10--;series11++;n_series11=false;}
if(
NumberOfPosition(Symbol(),-1)==12&&n_series12){series11--;series12++;n_series12=false;}

   
  } 
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 17:55   #3251 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от max020780 Посмотреть сообщение
вот я набрасал как я вижу этот код но это с точки зрения программирования я так понимаю полный бред хотелось чтоб код был грамотно написан и с возможностью в него добавить отдельной переменной количество серий а не так как я в ручную прописал условие для 12 серий и вывести комментом на экран
Но в этом коде нет отличительных признаков серий. или у нас разные понимания серии?
Мне кажется результатом выполнения этого кода будет просто подсчёт количества ордеров и присвоение этого значения одной из переменных seriesN

AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 18:10   #3252 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Сообщение от AlexeyVik Посмотреть сообщение
Но в этом коде нет отличительных признаков серий. или у нас разные понимания серии?
Мне кажется результатом выполнения этого кода будет просто подсчёт количества ордеров и присвоение этого значения одной из переменных seriesN

скорее всего разные понимания серии у нас с вами
как это там нет признаков серии?
давайте приведу еще один пример :
допустим было открыто 2 ордера (это серия ?) в одну сторону мы присвоили series2=1
потом эти 2 ордера закрылись
потом открылся 1 еще 1 мы приплюсовали к series2 еще 1 итого series2=2 открывается еще 1 ордер мы от series2 минусуем 1 а к series3 плюсуем 1(получаем серию из 3 ордеров верно ?) итого у нас получается что series2=1 и series3=1 другими словами 2 ордера одновременно у нас было открыто 1 раз и три ордера одновременно у нас было открыто тоже 1 раз и т.д
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 18:15   #3253 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от Ugar Посмотреть сообщение
Для начала надо прийти к пониманию, а какой трал надо? Их ведь существует куча разных. И дело не в способе реализации кода, а в совершенно разных принципах работы трала.
Трал нужен такой, который дает максимальный профит, при минимальной просадке!ИМХО!)
а вот какой это трал из кучи известных, тут я пока не могу понять, например есть тралы на ATR,MA-машкам, простым пунктам pips и другие....
по моему выбрать нужный затруднительно, придется провести мини исследование,прогнав несколько вариантов трала,на одном советнике, как считаете???

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 04.12.2014 в 18:22.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 18:28   #3254 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,250
Репутация: 1961
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 346
Поблагодарили 1,890 раз(а) в 1,067 сообщениях
Поинты: 1266
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Milord Посмотреть сообщение
Трал нужен такой, который дает максимальный профит, при минимальной просадке!ИМХО!)
а вот какой это трал из кучи известных, тут я пока не могу понять, например есть тралы на ATR,MA-машкам, простым пунктам,по моему выбрать нужный затруднительно, придется провести мини исследование,прогнав несколько вариантов трала,на одном советнике, как считаете???
К каждой системе нужно свой трал. Обычно про него задумываются при разработке системы, если он там нужен. Конечно, если в голову не приходит мыслей по поводу какой лучше, тогда да, можно попробовать добавить все известные и сделать переключатель в настройках. Тогда можно будет попробовать подобрать, какой лучше подойдёт.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (04.12.2014), Milord (04.12.2014)
Старый 04.12.2014, 18:41   #3255 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547

По умолчанию Профи MQL4 - Как правильно написать код???


возник вопрос с подключением функций, 1-ну подключить кажется получилось, вызов на нее например Function_A() пишу сразу после команды Start(), но мне нужно из самой функции сделать вызов на другую функцию Function_B(), будет ли правильно,как я написал ниже:

PHP код:
int Start()
{

if(..
условие....) Function_A(); 

return(
0);
}
//-------------------------------------
void Function_A() 
{
if(...
условие......)
 {
  if(...
условие...)
   { 
   if(...
условие...) Function_B(); 
   }
 }
}
//--------------------------------------
void Function_B() 
{
if(...
условие...) 
   
}
//--------------------end-------------- 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 04.12.2014 в 18:43.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 18:56   #3256 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от max020780 Посмотреть сообщение
скорее всего разные понимания серии у нас с вами
как это там нет признаков серии?
давайте приведу еще один пример :
допустим было открыто 2 ордера (это серия ?) в одну сторону мы присвоили series2=1
потом эти 2 ордера закрылись
потом открылся 1 еще 1 мы приплюсовали к series2 еще 1 итого series2=2 открывается еще 1 ордер мы от series2 минусуем 1 а к series3 плюсуем 1(получаем серию из 3 ордеров верно ?) итого у нас получается что series2=1 и series3=1 другими словами 2 ордера одновременно у нас было открыто 1 раз и три ордера одновременно у нас было открыто тоже 1 раз и т.д
Понятно. Только не понятна цель такого подсчёта. Поэтому другого решения предложить сложно. Разве что считать максимальное количество, аналогично подсчёта еквити, на предыдущей странице. И когда серия закрывается значение в переменной, или даже в массиве с соответствующим индексом увеличивать на 1, а счётчик сбрасывать в 0.
А предусматриваются такие варианты, открыто 2 ордера, закрылся один. Потом открываются ещё 1+1... итого открыто 3
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 19:03   #3257 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Сообщение от AlexeyVik Посмотреть сообщение
Понятно. Только не понятна цель такого подсчёта. Поэтому другого решения предложить сложно. Разве что считать максимальное количество, аналогично подсчёта еквити, на предыдущей странице. И когда серия закрывается значение в переменной, или даже в массиве с соответствующим индексом увеличивать на 1, а счётчик сбрасывать в 0.
А предусматриваются такие варианты, открыто 2 ордера, закрылся один. Потом открываются ещё 1+1... итого открыто 3
Цель такого подсчета это настройка оптимальных параметров для моего советника

Сообщение от AlexeyVik Посмотреть сообщение
А предусматриваются такие варианты, открыто 2 ордера, закрылся один. Потом открываются ещё 1+1... итого открыто 3
нет подобных вариантов не предусматривается закрываются ордера все
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 20:09   #3258 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от max020780 Посмотреть сообщение
Цель такого подсчета это настройка оптимальных параметров для моего советника
Ну, не знаю. Такой анализ легко провести визуально по кривой баланса счёта в тестере. А в реал-тайме так вообще, 1 раз в день посмотреть и записать проще чем изобретать такой учёт. Это такое имхую...
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 04.12.2014, 21:04   #3259 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Цитата:
помогите пожалуйста с написанием кода для подсчета ордеров суть такая есть сеточный советник и мне нужно посчитать сколько раз он открыл допустим сетку из 3 ордеров из четырех и т.д максимальное число колен заранее известно
PHP код:
ushort series[];
ushort series_current 0;

void OnTick()
  {
//---
   
int count countOrders();
   if(
count == 0)
      
series_current 0;
   if(
series_current != count)
   {
      
series_current count;
      if(
count == 1)
         
series[0]++;
      if(
count 1)
      {
         
series[count-1]++;
         
series[count-2]--;
      }
   }
  } 

Последний раз редактировалось matro3; 04.12.2014 в 21:10.
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
max020780 (05.12.2014)
Старый 05.12.2014, 03:18   #3260 (permalink)
Новичок форума
 
Аватар для max020780
 
Регистрация: 22.12.2009
Сообщений: 44
Репутация: 11
max020780
Сказал(а) спасибо: 6
Поблагодарили 12 раз(а) в 7 сообщениях
Поинты: 30
Цитата:
int count = countOrders();
здесь будет верно если я напишу int count = OrdersTotal();


И подскажите пожалуйста как это в цикле правильно вывести на экран при помощи функции Comment ( ); чтоб в итоге оно выглядело таким образом
серия из 1-го ордера = 1
серия из 2-х ордеров = 7
серия из 3-х ордеров = 4
серия из 4-х ордеров = 9
........
.........
серия из N ордеров = 3
max020780 вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

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



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


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