Ответ
 
Опции темы
Старый 10.05.2013, 20:18   #1261 (permalink)
◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
 
Аватар для tommy27
 
Регистрация: 16.10.2011
Адрес: Новосибирск
Сообщений: 1,054
Репутация: 3189
tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27
Сказал(а) спасибо: 2,326
Поблагодарили 3,184 раз(а) в 875 сообщениях
Поинты: 570
Отправить сообщение для tommy27 с помощью Skype™
Всем привет!
Помогите советом, делаю виртуальный трал и столкнулся с такой проблемой: почему то не срабатывает строка closelevel=profitpips-TrailingStop, т.е. трал и GlobalVariableSet("tral",0)включается как положено, но переменной
closelevel присваивается значение profitpips(это текущий профит в пунктах), а не profitpips-TrailingStop со всеми вытекающими последствиями



Скрытый текст

PHP код:
void Trailing()
   {
    if(!
GlobalVariableCheck("tral")&&profitpips>=TrailingStart)
     {
      
closelevel=profitpips-TrailingStop;
      
GlobalVariableSet("tral",0);
      }
    if(
GlobalVariableCheck("tral")&&profitpips>=closelevel+TrailingStop)closelevel=profitpips;
    if(
GlobalVariableCheck("tral")&&profitpips<=closelevel)
     {
      Print (
"ВСЁ ОТЛИЧНО ЗАКРЫЛИСЬ ПО ТРАЛЛУ");
      for (
int i=0i<NumberOfTryi++) 
        {
         
CloseAll();
         
Lot=LOT;
        }
      }  
     return;} 
[свернуть]

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
puretrade.ru

Последний раз редактировалось NSerega; 18.05.2013 в 02:01.
tommy27 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.05.2013, 21:04   #1262 (permalink)
◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
 
Аватар для tommy27
 
Регистрация: 16.10.2011
Адрес: Новосибирск
Сообщений: 1,054
Репутация: 3189
tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27
Сказал(а) спасибо: 2,326
Поблагодарили 3,184 раз(а) в 875 сообщениях
Поинты: 570
Отправить сообщение для tommy27 с помощью Skype™
Разобрался с этим, строку

Скрытый текст

PHP код:
if(GlobalVariableCheck("tral")&&profitpips>=closelevel+TrailingStop)closelevel=profitpips
[свернуть]

изменил на

Скрытый текст

PHP код:
if(GlobalVariableCheck("tral")&&profitpips-TrailingStop>=closelevel+TrailingStop)closelevel=profitpips
[свернуть]


ток теперь при увеличении профита
PHP код:
closelevel 
не модифицируется...
пятница... мозг устал... не вижу очевидных вещей... спать пойду, завтра всё сразу сделается)))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
puretrade.ru

Последний раз редактировалось NSerega; 18.05.2013 в 02:01.
tommy27 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.05.2013, 21:07   #1263 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
Сообщение от tommy27 Посмотреть сообщение
но переменной closelevel присваивается значение profitpips(это текущий профит в пунктах), а не profitpips-TrailingStop
Это патамушта 2й if сработает обязательно, если сработал 1й. А он и присвоит closelevel=profitpips. И 3й if тоже сработает, если 1й сработал. Где-то у вас else не хватает, не оч понимаю логику, поэтому не скажу где именно. Скорей всего перед 2м и 3м if'ами
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.05.2013, 22:34   #1264 (permalink)
◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
 
Аватар для tommy27
 
Регистрация: 16.10.2011
Адрес: Новосибирск
Сообщений: 1,054
Репутация: 3189
tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27
Сказал(а) спасибо: 2,326
Поблагодарили 3,184 раз(а) в 875 сообщениях
Поинты: 570
Отправить сообщение для tommy27 с помощью Skype™
Сладкий кофе с печеньками, помогли, разобрался, спасибо, обошлось без else.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
puretrade.ru

Последний раз редактировалось tommy27; 10.05.2013 в 23:31.
tommy27 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.05.2013, 12:58   #1265 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от hoz Посмотреть сообщение
Флаг "железно" в ТРУ постоянно (на скрине ТП баев минусовый, а флаг в ТРУ):
Правильно, потому что if (profitL < OrderProfit()) выполняется только для позиций с положительным профитом. Я вообще не понимаю, что этот if тут делает, по-моему, с логикой непорядок, предыдущая версия этой функции выглядела разумнее.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.05.2013, 16:55   #1266 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Правильно, потому что if (profitL < OrderProfit()) выполняется только для позиций с положительным профитом. Я вообще не понимаю, что этот if тут делает, по-моему, с логикой непорядок, предыдущая версия этой функции выглядела разумнее.
Да там уже решился вопрос. Логика была не верная. Вот так вот я реализовал для покупок:

Скрытый текст

PHP код:
if (OrderType() == OP_BUY)              // Найден ордер типа OP_BUY
                 
{
                     if (
profitL OrderProfit())
                     {
                         
profitL OrderProfit();
                         Print(
"i = "i" ; profitL = "profitL);
        
//                 pr("profitL =" + profitL);      // Выводим профим через коммент на график
                     
}
                 } 
[свернуть]

Последний раз редактировалось NSerega; 18.05.2013 в 02:00.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.05.2013, 00:12   #1267 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Возник новый головняк. Есть пачки отложек в разные стороны. Рассмотрим один из вариантов:

Если отложка на бай сработала, значит нам нужно удалить одну крайнюю отложку селовую, т.е. с самой низкой ценой. Выкладываю свой код, который удаляет почему то сразу все селовые отложки:

Скрытый текст

PHP код:
//+-------------------------------------------------------------------------------------+
//| Удаление несработанных отложеннык шортов                                            |
//+-------------------------------------------------------------------------------------+
void DeletePendingSells(intamountOfCurrPending)
{
   
int total OrdersTotal() - 1,
       
ordersToDelete level amountOfCurrPending,  // Количество отложек, которые требуется удалить
       
s_ticket;
   
amountOfCurrPendingBuys 0;                       // Количество текущих отложек на покупку
   
amountOfCurrPendingSells 0;                      // Количество текущих отложек на продажу
   
Print("ordersToDelete = level - amountOfCurrPending ; "level" - "amountOfCurrPending);

   
double OOP 20.0;                                  // Зададим значение цены открытия отложки, которой не может быть..
   
   
if (ordersToDelete == 0) return (0);

   for (
int i=totali>=0i--)
   {
      if (!
OrderSelect(i,SELECT_BY_POS)) continue;
      if (
OrderSymbol() != Symbol()) continue;
      if (
OrderMagicNumber() != i_magic) continue;
      if(
OrderType() != OP_SELLSTOP) continue;         // Работает только с шортовыми ордерами
      
      
if (OOP OrderOpenPrice())
      {
          Print(
"OOP > OrderOpenPrice() ; "OOP" > "OrderOpenPrice());
          
OOP OrderOpenPrice();                  // Ищется ордер, с минимальной ценой открытия
          
s_ticket OrderTicket();                // Получаем тикет ордера с минимальной ценой открытия
          
Print("DeletePendingSells: s_ticket = "s_ticket);
          Print(
"DeletePendingSells: OOP = "OOP);
      }
   }

   while (
ordersToDelete 0)                      // Если есть ордера, которые требуется удалить..
   
{
      
OrderDelete(s_ticket,Black);
      
ordersToDelete--;                        // Уменьшаем количество требуемых ордеров для удаления на 1, т.к. строкой выше..
                                               // .. один отложенник уже удалили
   
}
   
   return (
0);
  
//Print("DeletePendingSells: ordersToDelete = ", ordersToDelete);

[свернуть]



Логику кода по строкам я специально прописал в комментариях, чтоб все поняли что я писал.
Логика то вроде простая, но работает не верно. Что не так? Может кто-н. подобное уже писал и есть на что взглянуть?

Последний раз редактировалось NSerega; 18.05.2013 в 02:00.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.05.2013, 05:39   #1268 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,529
Репутация: 3649
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,118
Поблагодарили 3,653 раз(а) в 1,472 сообщениях
Поинты: 2007
Сообщение от hoz Посмотреть сообщение
Возник новый головняк. Есть пачки отложек в разные стороны. Рассмотрим один из вариантов:

Если отложка на бай сработала, значит нам нужно удалить одну крайнюю отложку селовую, т.е. с самой низкой ценой. Выкладываю свой код, который удаляет почему то сразу все селовые отложки:

Скрытый текст

PHP код:
//+-------------------------------------------------------------------------------------+
//| Удаление несработанных отложеннык шортов                                            |
//+-------------------------------------------------------------------------------------+
void DeletePendingSells(intamountOfCurrPending)
{
   
int total OrdersTotal() - 1,
       
ordersToDelete level amountOfCurrPending,  // Количество отложек, которые требуется удалить
       
s_ticket;
   
amountOfCurrPendingBuys 0;                       // Количество текущих отложек на покупку
   
amountOfCurrPendingSells 0;                      // Количество текущих отложек на продажу
   
Print("ordersToDelete = level - amountOfCurrPending ; "level" - "amountOfCurrPending);

   
double OOP 20.0;                                  // Зададим значение цены открытия отложки, которой не может быть..
   
   
if (ordersToDelete == 0) return (0);

   for (
int i=totali>=0i--)
   {
      if (!
OrderSelect(i,SELECT_BY_POS)) continue;
      if (
OrderSymbol() != Symbol()) continue;
      if (
OrderMagicNumber() != i_magic) continue;
      if(
OrderType() != OP_SELLSTOP) continue;         // Работает только с шортовыми ордерами
      
      
if (OOP OrderOpenPrice())
      {
          Print(
"OOP > OrderOpenPrice() ; "OOP" > "OrderOpenPrice());
          
OOP OrderOpenPrice();                  // Ищется ордер, с минимальной ценой открытия
          
s_ticket OrderTicket();                // Получаем тикет ордера с минимальной ценой открытия
          
Print("DeletePendingSells: s_ticket = "s_ticket);
          Print(
"DeletePendingSells: OOP = "OOP);
      }
   }

   while (
ordersToDelete 0)                      // Если есть ордера, которые требуется удалить..
   
{
      
OrderDelete(s_ticket,Black);
      
ordersToDelete--;                        // Уменьшаем количество требуемых ордеров для удаления на 1, т.к. строкой выше..
                                               // .. один отложенник уже удалили
   
}
   
   return (
0);
  
//Print("DeletePendingSells: ordersToDelete = ", ordersToDelete);

[свернуть]



Логику кода по строкам я специально прописал в комментариях, чтоб все поняли что я писал.
Логика то вроде простая, но работает не верно. Что не так? Может кто-н. подобное уже писал и есть на что взглянуть?
Так если тебе надо удалить только один ордер, зачем-же удаление поставил в цикл wile()
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.05.2013, 09:49   #1269 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от AlexeyVik Посмотреть сообщение
Так если тебе надо удалить только один ордер, зачем-же удаление поставил в цикл wile()
На случай, если сработает больше 1 отложки в бай, и нужно будет закрыть больше 1 отложки в селл.
Через параметр amountOfCurrPending переддаётся количество отложек. А значит если их количество меньше требуемого, то мы имеет разницу. Понимаете?
Вот:

PHP код:
ordersToDelete level amountOfCurrPending,  // Количество отложек, которые требуется удалить 

Значит нужно удалить ordersToDelete отложек.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.05.2013, 16:45   #1270 (permalink)
Интересующийся
 
Аватар для Schielend
 
Регистрация: 15.04.2013
Сообщений: 3
Репутация: 1
Schielend
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6

По умолчанию Проверить условие


Помогите если не сложно написать две строчки кода для считывания цвета линии индикатора SMA centered oscillator 2.02 и проверки условия - если линия синяя (индекс линии 1) покупаем.
Нужно для теста стратегии на истории.
Индикатор прилагаю.
Вложения:
Тип файла: mq4 SMA centered oscillator 2.02.mq4 (4.4 Кб, 7 просмотров)
Schielend вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.05.2013, 21:55   #1271 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1966
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,895 раз(а) в 1,071 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Schielend Посмотреть сообщение
Помогите если не сложно написать две строчки кода для считывания цвета линии индикатора SMA centered oscillator 2.02 и проверки условия - если линия синяя (индекс линии 1) покупаем.
Нужно для теста стратегии на истории.
Индикатор прилагаю.
Синяя линия есть всегда. Белая иногда закрывает синюю. Сделай белую линию тонкой или бесцветной и увидишь что она на фоне синей.
Так что условие, если линия синяя - покупать, неверно. Получится что покупать всегда. Нужно оперировать с белой линией или с наклоном синей.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 17:55   #1272 (permalink)
Интересующийся
 
Аватар для Schielend
 
Регистрация: 15.04.2013
Сообщений: 3
Репутация: 1
Schielend
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6
Спасибо, с линией разобрался.
Еще вопрос, как заполнить массив даных последних N баров значений стохастика?
Т.е. допустим период стохастика 14 баров, а мне нужно узнать числовые значение последних 4-х баров, чтобы сравнить их между собой и определить тенденцию.
Schielend вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 20:04   #1273 (permalink)
Интересующийся
 
Аватар для krovel
 
Регистрация: 07.04.2013
Сообщений: 4
Репутация: 1
krovel
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Извиняюсь за глупый вопрос,как можно присвоить значение переменной <x>:
if ( uy != false)
{
double x = Bid+0.0002+otstup*Point;
}
else
{

double x = Ask+30*Point;
{
такой вариант не работает ,как можно это организовать?
krovel вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 20:24   #1274 (permalink)
Интересующийся
 
Аватар для krovel
 
Регистрация: 07.04.2013
Сообщений: 4
Репутация: 1
krovel
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
в конце { - опечатка, конечно так }
krovel вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 20:36   #1275 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1966
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,895 раз(а) в 1,071 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от krovel Посмотреть сообщение
Извиняюсь за глупый вопрос,как можно присвоить значение переменной <x>:
if ( uy != false)
{
double x = Bid+0.0002+otstup*Point;
}
else
{

double x = Ask+30*Point;
{
такой вариант не работает ,как можно это организовать?
Попробуй объявить переменную, до всех условий.
double x;
if (uy)x = Bid+0.0002+otstup*Point;
else x = Ask+30*Point;

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 20:45   #1276 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1966
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,895 раз(а) в 1,071 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Schielend Посмотреть сообщение
Спасибо, с линией разобрался.
Еще вопрос, как заполнить массив даных последних N баров значений стохастика?
Т.е. допустим период стохастика 14 баров, а мне нужно узнать числовые значение последних 4-х баров, чтобы сравнить их между собой и определить тенденцию.
int N=10;
double Stoch[];
ArrayResize(Stoch,N);
for(int i=0; i<N; i++)Stoch[i]= iStochastic(NULL,0,14,3,3,MODE_SMA,0,0,i);

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
tommy27 (25.05.2013)
Старый 24.05.2013, 21:09   #1277 (permalink)
Интересующийся
 
Аватар для krovel
 
Регистрация: 07.04.2013
Сообщений: 4
Репутация: 1
krovel
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
'x' - variable already defined( уже определена переменная) такую ощибку пишет.
Ugar , я не совсем понял где предлагаешь объявить "x" ,покажи пожалуйста.


//+------------------------------------------------------------------+
//| blablabla.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
extern bool uy = true;
int start()
{
if ( uy != false)
{double x= Bid+0.0002+30*Point;

}
else
{
double x= Ask+30*Point;

}
return(0);
}
//+------------------------------------------------------------------+
krovel вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 24.05.2013, 21:36   #1278 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1966
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,895 раз(а) в 1,071 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от krovel Посмотреть сообщение
'x' - variable already defined( уже определена переменная) такую ощибку пишет.
Ugar , я не совсем понял где предлагаешь объявить "x" ,покажи пожалуйста.


//+------------------------------------------------------------------+
//| blablabla.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
extern bool uy = true;
int start()
{
if ( uy != false)
{double x= Bid+0.0002+30*Point;

}
else
{
double x= Ask+30*Point;

}
return(0);
}
//+------------------------------------------------------------------+
До всех условий. А после условий брать double перед х
extern bool uy = true;
int start()
{
double x;
if ( uy != false)
{x= Bid+0.0002+30*Point;

}
else
{
x= Ask+30*Point;

}
return(0);
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 24.05.2013 в 21:54.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
krovel (24.05.2013)
Старый 24.05.2013, 21:56   #1279 (permalink)
Интересующийся
 
Аватар для krovel
 
Регистрация: 07.04.2013
Сообщений: 4
Репутация: 1
krovel
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Ugar спасибо огромное,всё получилось!
krovel вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 25.05.2013, 17:48   #1280 (permalink)
Интересующийся
 
Аватар для Schielend
 
Регистрация: 15.04.2013
Сообщений: 3
Репутация: 1
Schielend
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6
Спасибо за помощь. Теперь возник вопрос, как проверить упорядочены ли числа в массиве или нет?
Сам смог сделать проверку только без массива, чтобы протестировать стратегию

Скрытый текст

// Покупка
/*
if (stochF1>stochF2 && stochF2>stochF3 && stochF3>stochF4 && stochF4>stochF5 && stochF<Level_UPF)
{
r=2;
}
// Продажа
if (stochF1<stochF2 && stochF2<stochF3 && stochF3<stochF4 && stochF4<stochF5 && stochF>Level_DOWNF)
{
r=1;
}*/
[свернуть]

Но хотелось бы все таки массивом, чтобы при изменении N не переписывать часть программы.
На ум приходит только присвоение произвольной переменной какого-нибудь значения (например 2 для покупки и 1 для продажи) и затем суммирования их внутри цикла и сравнение с требуемым значением в зависимости от количества баров N, но такой вариант будет плохим.
Schielend вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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