Ответ
 
Опции темы
Старый 18.01.2013, 08:39   #881 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
А я сейчас, ну в течение дня проверю и напишу. Спасибки бОльшее!!!
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 12:52   #882 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Пытаюсь освоить работу с массивами. Но на практике что-то они не очень поддаются. Расклад простой. Я решил поэкспериментировать, и освоить это дело на простом алгоритме:
- есть основная медленная машка с 365 периодом.
- есть 4 быстрых машки с периодами 6, 25, 150 и 250
В общем, когда быстрая машка пересекает медленную (365-ую) и цена откатывает до быстрой машки, то входим в рынок.
Пишу по тиху код, но что-то не то выходит:

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

PHP код:
//+-------------------------------------------------------------------------------------+
//| Получение значений МА на двух соседних барах                                        |
//+-------------------------------------------------------------------------------------+
double GetCurAndPrevMA(int maPerioddoubleprevMA)
{
   
prevMA iMA(NULLi_trading_TFmaPeriod0MODE_EMAMODE_CLOSE1);
   return (
iMA(NULLi_trading_TFmaPeriod0MODE_EMAMODE_CLOSE0));
}
//+-------------------------------------------------------------------------------------+
//| Получение положения машек между собой                                               |
//+-------------------------------------------------------------------------------------+
void GetStateMa(intsignal[])
{
   
double ema365_1;
   
double ema365_0 GetCurAndPrevMA(365ema365_1);

   for (
int i 04i++)
   {
      
double ema1;
      
double ema0 GetCurAndPrevMA(g_maPeriod[i], ema1);
      
signal[i] = MA_TALKING_FLAT;

      if (
ema1 ema365_1 && ema0 ema365_0)
         
signal[i] = MA_TALKING_LONG;
      if (
ema1 ema365_1 && ema0 ema365_0)
         
signal[i] = MA_TALKING_SHORT;
   }
}
//+-------------------------------------------------------------------------------------+
//| Имеет ли место отскок?                                                              |
//+-------------------------------------------------------------------------------------+
bool IsRebound(intsignal[])
{
   
double low iLow(Symbol(), i_trading_TF1);
   
double high iHigh(Symbol(), i_trading_TF1);
   
// Получаем 2 соседних значения ema6
   
for(int i=0i<4i++)
   {
     
double ema1;
     
double ema0 GetCurAndPrevMA(g_maPeriod[i],ema1);
   
     
RefreshRates();

     if (
GetStateMa(signal[i]) == MA_TALKING_LONG)
     {
       if (
ema1 low)
          if (
ema0 >= Bid)
             return (
true);
     }
     if (
GetStateMa(signal[i]) == MA_TALKING_SHORT)
     {
       if (
ema1 high)
          if (
ema0 <= Ask)
             return (
true);
     }
   }
 
   return (
false);
}
//+-------------------------------------------------------------------------------------+
//| Получение общего сигнала на вход                                                    |
//+-------------------------------------------------------------------------------------+
void GetGeneralSignal(intsignal[])
{
  for(
int i=0i<4i++)
  {
    
signal[i] = SIGNAL_NO;
    
    if(
GetStateMa(signal[i]) == MA_TALKING_LONG && IsRebound(signal[i]) == true)
      
signal[i] = SIGNAL_BUY;
    
    if(
GetStateMa(signal[i]) == MA_TALKING_SHORT && IsRebound(signal[i]) == true)
      
signal[i] = SIGNAL_SELL;
  }

В start имеем это:

PHP код:
//+-------------------------------------------------------------------------------------+
//| Функция start                                                                       |
//+-------------------------------------------------------------------------------------+
int start()
{
   static 
datetime barTime 0;
   if (
barTime == iTime(NULLi_trading_TF0))
      return (
0);

   
int signal[4];
   
GetStateMa(signal);
  
   
GetGeneralSignal(signal);

   if (!
Trade(signal))
      return (
0);

   
barTime iTime(NULLi_trading_TF0);
   return (
0);

Суть такая, при компиляции компилятор ругается так:

Код:
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (126, 21)
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (132, 21)
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (151, 19)
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (151, 62)
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (154, 19)
'signal' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (154, 63)
Почему так?

Ругается он наразличные места. Например, в функции bool IsRebound(int& signal[]) строчки:

PHP код:
if (GetStateMa(signal[i]) == MA_TALKING_LONG)
if (
GetStateMa(signal[i]) == MA_TALKING_SHORT
[свернуть]
Как тут может быть ошибка не понимаю, ведь я задал цикл и по индексу должно перебираться?

Последний раз редактировалось chocolate; 19.01.2013 в 13:27.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 13:22   #883 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
Сообщение от Allis Amazing Посмотреть сообщение
А я сейчас, ну в течение дня проверю и напишу. Спасибки бОльшее!!!
На дёмке пока пашет, но и ситуации не было подходящей, а тестер аж завис от ошибок, файл скомпилировался нормально...
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 13:34   #884 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Allis Amazing Посмотреть сообщение
На дёмке пока пашет, но и ситуации не было подходящей, а тестер аж завис от ошибок, файл скомпилировался нормально...
Если ты не знаешь алгоритм своей совы, то почему ты так в него упёрлась? Я, например, недоверяю левым разработкам, если не в курсе про алгоритм той или иной совы..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 14:10   #885 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
Сообщение от Allis Amazing Посмотреть сообщение
[CODE]bool CheckTimeFors()
{
return(false);
Благодарствую что не оставили без внимания! Вот в сюда?
Уес. Но вам правильно пишут, что надо функцию построчно разобрать, может кроме проверки условия она делает что-то ещё - меняет какие-то значения в глобальных переменных, а они влияют на работу др функций

Сообщение от hoz Посмотреть сообщение
PHP код:
if (GetStateMa(signal[i]) ...

void GetStateMa(intsignal[]) 
В if функции передается единственное значение массива нумер i, т.е. переменная а не массив, как требует GetStateMa(int& signal[])
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 14:41   #886 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ale002 Посмотреть сообщение
В if функции передается единственное значение массива нумер i, т.е. переменная а не массив, как требует GetStateMa(int& signal[])
Так у меня ж там цикл:

PHP код:
for(int i=0i<4i++) 

Для каждого i идёт проверка условия, то для каждого индекса (для каждой машки)

Поэтому я и сравниваю по каждому индексу отдельно, как же иначе?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 14:52   #887 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
Сообщение от hoz Посмотреть сообщение
Если ты не знаешь алгоритм своей совы, то почему ты так в него упёрлась? Я, например, недоверяю левым разработкам, если не в курсе про алгоритм той или иной совы..
Её писали мне, с моих слов, но программист был суперответственным человеком, и он чутка перестарался с подстраховкой. Эта функция что он придумал, она очень хорошая, но вот я не могла долго начать тестирование, и не знала об одном этом её недостатке. А теперь и связь с программистом потеряна и хочется что бы сова работала...
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 16:02   #888 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
И всё-таки поменяв все 12 на -1 и 48 на 60 Сова все равно посчитала что время пришло и сменила СЛ у открытых ордеров..... Я близка к помешательству.... Значит даже если время настать не может(!) всё равно алгоритм силён и делает свою работу)))
Программист был настолько силён, что видимо учёл и форс-мажор для форс-мажора....
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 16:16   #889 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Allis Amazing Посмотреть сообщение
И всё-таки поменяв все 12 на -1 и 48 на 60 Сова все равно посчитала что время пришло и сменила СЛ у открытых ордеров..... Я близка к помешательству.... Значит даже если время настать не может(!) всё равно алгоритм силён и делает свою работу)))
Программист был настолько силён, что видимо учёл и форс-мажор для форс-мажора....
Наверняка там всё просто. Но смена какого то условия не всегда приводит к правильным результатам. Есть 3 варианта действий.
1. разыскать программиста, писавшего советник. Хороший вариант, но не всегда выполнимый.
2. Обратиться к другому программисту. Предоставить ему код целиком. Объяснить что нужно переделать. Не лучший вариант, но может быть самым оптимальным.
3. Выучить основы языка программирования и разобраться в коде самостоятельно. учебники и справочники есть в свободном доступе. Лучший вариант. Эти навыки лишними не будут.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
AlexeyVik (18.01.2013), Allis Amazing (18.01.2013)
Старый 18.01.2013, 17:24   #890 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от hoz Посмотреть сообщение
Так у меня ж там цикл:

PHP код:
for(int i=0i<4i++) 

Для каждого i идёт проверка условия, то для каждого индекса (для каждой машки)

Поэтому я и сравниваю по каждому индексу отдельно, как же иначе?

Неужели такой сложный вопрос, что никто не знает ответ? Здесь идёт обсуждение кода, который полностью никто не видит, и даже, нет канкретной картины его алгоритма.
Я же описал задачу явно, и это вроде как можно понять, если, конечно, кто-то понимает как это делается.

Последний раз редактировалось hoz; 18.01.2013 в 17:27.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 17:39   #891 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3646
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,650 раз(а) в 1,470 сообщениях
Поинты: 2007
Сообщение от hoz Посмотреть сообщение
Неужели такой сложный вопрос, что никто не знает ответ? Здесь идёт обсуждение кода, который полностью никто не видит, и даже, нет канкретной картины его алгоритма.
Я же описал задачу явно, и это вроде как можно понять, если, конечно, кто-то понимает как это делается.
hoz, ты сказал, что изучаешь массивы, а массивы не объявлены. Какое-же может быть изучение если ты даже не прочёл о том как массивы объявляются...
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 17:49   #892 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от AlexeyVik Посмотреть сообщение
hoz, ты сказал, что изучаешь массивы, а массивы не объявлены. Какое-же может быть изучение если ты даже не прочёл о том как массивы объявляются...

Как это не прочёл. У меня на глобальном объявлено так:

PHP код:
int g_maPeriod[4] = {625150250},             // Периоды обрабатываемых МА
    
g_signMA[4] = {1234};                    // Признаки МАшек, добавляемые в Magic
                                                   // ..Number ордера к основному Magic
int signal[4] = {1,2,3,4}; 
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 18:23   #893 (permalink)
::: __,,,^._.^,,,__ :::
 
Аватар для ale002
 
Регистрация: 28.02.2010
Сообщений: 1,246
Репутация: 2528
ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002 ale002
Сказал(а) спасибо: 794
Поблагодарили 2,502 раз(а) в 770 сообщениях
Поинты: 670
Сообщение от hoz Посмотреть сообщение
Неужели такой сложный вопрос, что никто не знает ответ? Здесь идёт обсуждение кода, который полностью никто не видит, и даже, нет канкретной картины его алгоритма.
Я же описал задачу явно, и это вроде как можно понять, если, конечно, кто-то понимает как это делается.
Отжеж божеш мой, вам жеж и терминал в журнале пишет и здесь уже написали - сделайте одиноковый тип переменной в вызове функции и в описании ее переменных. Уберите квадратные скобки в GetStateMa(int& signal[]) и жизень станет проще
ale002 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 19:03   #894 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ale002 Посмотреть сообщение
Отжеж божеш мой, вам жеж и терминал в журнале пишет и здесь уже написали - сделайте одиноковый тип переменной в вызове функции и в описании ее переменных. Уберите квадратные скобки в GetStateMa(int& signal[]) и жизень станет проще
Я вижу, что проблема в том, что тип функции GetStateMa(int& signal[])
void т.е. она ничего не возвращает. Тока у меня в функции:

PHP код:
void GetGeneralSignal(intsignal[])
{
  for(
int i=0i<4i++)
  {
    
signal[i] = SIGNAL_NO;
    
    if(
GetStateMa(signal[i]) == MA_TALKING_LONG && IsRebound(signal[i]) == true)
      
signal[i] = SIGNAL_BUY;
    
    if(
GetStateMa(signal[i]) == MA_TALKING_SHORT && IsRebound(signal[i]) == true)
      
signal[i] = SIGNAL_SELL;
  }


уже в буфер кладутся значения сигнала. А по скольку функция GetStateMa(int& signal[]) ничего не возвращает, то для того чтоб хранить значения направления машек нужен ещё один массив так? И тогда мне нужно будет есс-но сравнивать массив с дефайном..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 19:32   #895 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
Сообщение от Ugar Посмотреть сообщение
Наверняка там всё просто. Но смена какого то условия не всегда приводит к правильным результатам. Есть 3 варианта действий.
1. разыскать программиста, писавшего советник. Хороший вариант, но не всегда выполнимый.
2. Обратиться к другому программисту. Предоставить ему код целиком. Объяснить что нужно переделать. Не лучший вариант, но может быть самым оптимальным.
3. Выучить основы языка программирования и разобраться в коде самостоятельно. учебники и справочники есть в свободном доступе. Лучший вариант. Эти навыки лишними не будут.
1-ый пункт невыполним, я бы и не мучилась даже.
2-ой не вариант, пробовала, но говорят слишком сложный алгоритм.
3-ий вот этим аккурат я сейчас и занялась, только где бы найти "доступную" азбуку, там где бы было не просто написано что бывают глобальные, а бывают переменные, а ещё и их функции на доступном языке....
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.01.2013, 19:33   #896 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
По сути я ещё один массив объявил. Получилось уже всё, можно, казать нормально. Но в одном месте та же ругань.

Вот места, нужные для понимания происходящего:

Объявлено глобально:

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

PHP код:
int g_maPeriod[4] = {625150250},             // Периоды обрабатываемых МА
    
g_signMA[4] = {1234};                    // Признаки МАшек, добавляемые в Magic
                                                   // ..Number ордера к основному Magic
int signal[4] = {1,2,3,4};                         // Сигналы на вход в рынок
int stateMA[4] = {1,2,3,4};                          // Положение машек относительно друг друга


#define MA_TALKING_LONG                         0                             // Машки расположены к покупке
#define MA_TALKING_SHORT                        1                             // Машки расположены к продаже
#define MA_TALKING_FLAT                        -1                             // Машки указывают на флет
#define SIGNAL_BUY                              0                             // Сигнал на покупку
#define SIGNAL_SELL                             1                             // Сигнал на продажу
#define SIGNAL_NO                              -1                             // Сигнала нет 
Функции связаны с данными массивами вот:

PHP код:
//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int sign)
{
   
int t;                                                 // Количество открытых позиции (buy's + sell's)

   
for (int i OrdersTotal() - 1>= 0i--)
   {
      if (!
OrderSelect(iSELECT_BY_POS)) 
         continue;
         
      if (
OrderMagicNumber() == i_myMagic sign &&
          
OrderSymbol() == Symbol())
        
t++;
   }

   return (
t);
}
//+-------------------------------------------------------------------------------------+
//| Получение значений МА на двух соседних барах                                        |
//+-------------------------------------------------------------------------------------+
double GetCurAndPrevMA(int maPerioddoubleprevMA)
{
   
prevMA iMA(NULLi_trading_TFmaPeriod0MODE_EMAMODE_CLOSE1);
   return (
iMA(NULLi_trading_TFmaPeriod0MODE_EMAMODE_CLOSE0));
}
//+-------------------------------------------------------------------------------------+
//| Получение положения машек между собой                                               |
//+-------------------------------------------------------------------------------------+
void GetStateMa(intstateMA[])
{
   
double ema365_1;
   
double ema365_0 GetCurAndPrevMA(365ema365_1);

   for (
int i 04i++)
   {
      
double ema1;
      
double ema0 GetCurAndPrevMA(g_maPeriod[i], ema1);
      
stateMA[i] = MA_TALKING_FLAT;

      if (
ema1 ema365_1 && ema0 ema365_0)
         
stateMA[i] = MA_TALKING_LONG;
      if (
ema1 ema365_1 && ema0 ema365_0)
         
stateMA[i] = MA_TALKING_SHORT;
   }
}
//+-------------------------------------------------------------------------------------+
//| Имеет ли место отскок?                                                              |
//+-------------------------------------------------------------------------------------+
bool IsRebound(intstateMA[])
{
   
double low iLow(Symbol(), i_trading_TF1);
   
double high iHigh(Symbol(), i_trading_TF1);
   
// Получаем 2 соседних значения ema6
   
for(int i=0i<4i++)
   {
     
double ema1;
     
double ema0 GetCurAndPrevMA(g_maPeriod[i],ema1);
   
     
RefreshRates();

     if (
stateMA[i] == MA_TALKING_LONG)
     {
       if (
ema1 low)
          if (
ema0 >= Bid)
       return (
true);
     }
     if (
stateMA[i] == MA_TALKING_SHORT)
     {
       if (
ema1 high)
          if (
ema0 <= Ask)
       return (
true);
     }
   }
 
   return (
false);
}
//+-------------------------------------------------------------------------------------+
//| Получение общего сигнала на вход                                                    |
//+-------------------------------------------------------------------------------------+
void GetGeneralSignal(intsignal[])
{
  for(
int i=0i<4i++)
  {
    
signal[i] = SIGNAL_NO;
    
    if(
stateMA[i] == MA_TALKING_LONG && IsRebound(stateMA[i]) == true)
      
signal[i] = SIGNAL_BUY;
    
    if(
stateMA[i] == MA_TALKING_SHORT && IsRebound(stateMA[i]) == true)
      
signal[i] = SIGNAL_SELL;
  }
}
//+-------------------------------------------------------------------------------------+
//| Открытие длинных позиций                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy(int i_myMagic)
{
  
int ticket = -1;
  
string myNote "Сов баянул";
  
  
ticket OrderSend(Symbol(),OP_BUY,0.1,Ask,i_slippage,0,0,myNote,i_myMagic,0,Blue);
  
  if(
ticket && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(
true);
}
//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell(int i_myMagic)
{
  
int ticket = -1;
  
string myNote "Сов шортанул";

  
ticket OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic,0,Red);
 
  if(
ticket && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  
  return(
true);
}
//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(intsignal[])
{
   for (
int i 04i++)
   {   
      if (
stateMA[i] == MA_TALKING_LONG && FindOrders(g_signMA[i]) == 0)
         if (!
OpenBuy(g_signMA[i]))
            return (
false);

      if (
stateMA[i] == MA_TALKING_LONG && FindOrders(g_signMA[i]) == 0)
         if (!
OpenSell(g_signMA[i]))
            return (
false);
   }
 
   return (
true);

В start вот это:

PHP код:
int start()
{
   static 
datetime barTime 0;
   if (
barTime == iTime(NULLi_trading_TF0))
      return (
0);

   
int signal[4];
   
int stateMA[4];
   
   
GetStateMa(signal);
  
   
GetGeneralSignal(signal);

   if (!
Trade(signal))
      return (
0);

   
barTime iTime(NULLi_trading_TF0);
   return (
0);

При компиляции ошибка:


Код:
'stateMA' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (152, 51)
'stateMA' - incompatible types    E:\Insall'd soft's\Forex\Alpari NZ MT4\experts\Base150_2.mq4 (155, 52)
2 ошибок, 0 предупреждений
[свернуть]

Ошибка указывает на функцию void GetGeneralSignal(int& signal[])
В выражениях IsRebound(stateMA[i]) == true на stateMA[i] ругань. Тип int Вроде как нет никаких различий. Что тут не так?

И вообще просьба посоветовать по коду, может что не так пишу.. что касается стиля...

Последний раз редактировалось chocolate; 19.01.2013 в 13:29.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Allis Amazing (19.01.2013)
Старый 18.01.2013, 20:54   #897 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Allis Amazing Посмотреть сообщение
1-ый пункт невыполним, я бы и не мучилась даже.
2-ой не вариант, пробовала, но говорят слишком сложный алгоритм.
3-ий вот этим аккурат я сейчас и занялась, только где бы найти "доступную" азбуку, там где бы было не просто написано что бывают глобальные, а бывают переменные, а ещё и их функции на доступном языке....
На сайте авторов есть официальный букварь. _http://book.mql4.com/ru/
А вообще их много написано.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
Allis Amazing (19.01.2013), chocolate (19.01.2013)
Старый 19.01.2013, 15:30   #898 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
Сообщение от Ugar Посмотреть сообщение
На сайте авторов есть официальный букварь. _http://book.mql4.com/ru/
А вообще их много написано.
Ай, спасибо, посмотрю. Просто человек который знает тему, всегда может отличить "толковый букварь" от "ну что-то там на эту тему написано")))
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.01.2013, 18:49   #899 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Allis Amazing Посмотреть сообщение
Ай, спасибо, посмотрю. Просто человек который знает тему, всегда может отличить "толковый букварь" от "ну что-то там на эту тему написано")))

На самом деле учебником "это" не назовёшь. Сделано абы-как... Лучше смотри чьи-н. коды и изучай как они написано, а потом когда будет понимать как работаю эксперты, сможешь сама писать. А "то" что на оф. сайте.. используй как документацию и не более того. Документация с большего сносная, а учебника по сути нет, одно название..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
alexshell (19.01.2013), Allis Amazing (19.01.2013)
Старый 19.01.2013, 19:08   #900 (permalink)
Интересующийся
 
Аватар для Allis Amazing
 
Регистрация: 22.07.2012
Сообщений: 19
Репутация: 2
Allis Amazing
Сказал(а) спасибо: 33
Поблагодарили 1 раз в 1 сообщении
Поинты: 22
Сообщение от hoz Посмотреть сообщение
На самом деле учебником "это" не назовёшь. Сделано абы-как... Лучше смотри чьи-н. коды и изучай как они написано, а потом когда будет понимать как работаю эксперты, сможешь сама писать. А "то" что на оф. сайте.. используй как документацию и не более того. Документация с большего сносная, а учебника по сути нет, одно название..
Улыбнули, я с утра посмотрев на этот "учебник" уже поняла, что надо взять что-то простенькое и начать его курочить, а в "учебник" аккурат подглядывать за разъяснениями)))
_http://mql4you.ru/mql-school/metaeditor-urok-1.html
Вот нашла, вдруг кому-то поможет.

Последний раз редактировалось NSerega; 19.01.2013 в 20:03.
Allis Amazing вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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