Ответ
 
Опции темы
Старый 18.09.2013, 12:30   #1541 (permalink)
Местный житель
 
Аватар для svitanak
 
Регистрация: 18.07.2011
Сообщений: 163
Репутация: 298
svitanak svitanak svitanak
Сказал(а) спасибо: 234
Поблагодарили 297 раз(а) в 82 сообщениях
Поинты: 200

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


здравствуйте . у меня в сове прописан индикатор солар
PHP код:
int signal(int bars){
double A1=iCustom(Symbol(),0,"Solar_Wind_clean_IHF",period,smoozing,0,bars);
if(
A1>0) return(2);
else return(
1); 
помогите пожалуйста прописать открытие ордеров по сигналу другого индикатора. другими словами надо прописать сигналы как на скрине.
заранее спасибо
Миниатюры:
Нажмите на изображение для увеличения
Название: сигналы.jpg
Просмотров: 20
Размер:	86.5 Кб
ID:	132610  
Вложения:
Тип файла: mq4 #Lwma slope & alerts.mq4 (5.2 Кб, 9 просмотров)
svitanak на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 12:52   #1542 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от svitanak Посмотреть сообщение
здравствуйте . у меня в сове прописан индикатор солар
PHP код:
int signal(int bars){
double A1=iCustom(Symbol(),0,"Solar_Wind_clean_IHF",period,smoozing,0,bars);
if(
A1>0) return(2);
else return(
1); 
помогите пожалуйста прописать открытие ордеров по сигналу другого индикатора. другими словами надо прописать сигналы как на скрине.
заранее спасибо
Писать будешь сам. А логика проста. В индикаторе есть уровни цены. В А1 попадает рассчитанное значение индюка. Открываешься когда цена ниже или выше чего-то, или равно какому-то значению индюка или цены.
Например, перебираешь в цикле по барам и сравниваешь значение индюка на каждом из них:

PHP код:
if (A1(на баре с индексом 1) < (значения индюка в данной точке) && 
A1(на баре с индексом 0) > (значения индюка в данной точке))
{
    
Открываем ордер.


Ну а как получит места на графике.. Берёшь индюк и пытаешь понять какой буфер за что отвечает. Может помочь в этом, например, цвета в свойствам окна индюка. Хотя если декомпил, без опыта заколебёшся въезжать, что там что.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (18.09.2013), svitanak (18.09.2013)
Старый 18.09.2013, 13:13   #1543 (permalink)
Местный житель
 
Аватар для svitanak
 
Регистрация: 18.07.2011
Сообщений: 163
Репутация: 298
svitanak svitanak svitanak
Сказал(а) спасибо: 234
Поблагодарили 297 раз(а) в 82 сообщениях
Поинты: 200
Сообщение от hoz Посмотреть сообщение
Писать будешь сам. А логика проста. В индикаторе есть уровни цены. В А1 попадает рассчитанное значение индюка. Открываешься когда цена ниже или выше чего-то, или равно какому-то значению индюка или цены.
Например, перебираешь в цикле по барам и сравниваешь значение индюка на каждом из них:

PHP код:
if (A1(на баре с индексом 1) < (значения индюка в данной точке) && 
A1(на баре с индексом 0) > (значения индюка в данной точке))
{
    
Открываем ордер.


Ну а как получит места на графике.. Берёшь индюк и пытаешь понять какой буфер за что отвечает. Может помочь в этом, например, цвета в свойствам окна индюка. Хотя если декомпил, без опыта заколебёшся въезжать, что там что.
спасибо, но для меня это китайская грамота. сам не смогу. а так спасибо за совет. собирался начать изучать язык. надеюсь когда нибудь получится
svitanak на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 13:15   #1544 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от svitanak Посмотреть сообщение
спасибо, но для меня это китайская грамота. сам не смогу. а так спасибо за совет. собирался начать изучать язык. надеюсь когда нибудь получится
Ну так начинай. Для этого и существуют форумы, что бы учится. Тем более, это интересно и полезно для ума!
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (18.09.2013), svitanak (18.09.2013)
Старый 18.09.2013, 13:26   #1545 (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™
Сообщение от svitanak Посмотреть сообщение
спасибо, но для меня это китайская грамота. сам не смогу. а так спасибо за совет. собирался начать изучать язык. надеюсь когда нибудь получится
http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill.html
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
svitanak (18.09.2013)
Старый 18.09.2013, 13:43   #1546 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Рад представить ещё одно детище из той же библиотеки, которая выносит мне моск уже некоторый день, в подряд Вещи интересные, потом я всё-таки её осилю. Новый головняк ещё интереснее. Вот что имеем:

В глобальным переменных есть:

PHP код:
string bs_Symbol 

Ниже по коду ей ничего не присваивается.

Вот интересующая меня функция:

PHP код:
void fGet_MarketInfo (string fs_Symbolint fi_Ticket 0)
{
//----
     
if (fs_Symbol != bs_Symbol || fi_Ticket 0)
     {
          if (
fi_Ticket 0)
          {
             
bs_Symbol OrderSymbol();
          }
          else
          {
             
bs_Symbol fs_Symbol;
          }
          if (
bs_Symbol == Symbol())
          {
              
bi_SymDigits Digits;
              
bd_SymPoint Point;
          }
          else
          {
              
bi_SymDigits MarketInfo (fs_SymbolMODE_DIGITS);
              
bd_SymPoint MarketInfo (fs_SymbolMODE_POINT);
          }
        if (
bd_SymPoint == 0.0)
        {
           
bd_SymPoint fGet_Point (fs_Symbol);
        }
     }
     if (
fi_Ticket 0)
     {
        
fGet_OrderDetails (fi_Ticket);
     }
    
//---- Получаем текущие цены по инструменту
    
RefreshRates();
    
bda_Price[0] = NDD (fGet_TradePrice (0bb_RealTradebs_Symbol));
    
bda_Price[1] = NDD (fGet_TradePrice (1bb_RealTradebs_Symbol));
    
bd_Spread NDD (bda_Price[1] - bda_Price[0]);
//----


Смотреть на всю цепочку не обязательно. Интересуют общие аспекты.

В данный момент есть 2 вопроса по данной структуре:

1. Для чего в данном условии:

PHP код:
if (fs_Symbol != bs_Symbol || fi_Ticket 0

Сравнение символа передаваемого в функцию с bs_Symbol ? Ведь у bs_Symbol нет никакого значения вообще.. Но тип то string у данной переменной.. По умолчанию bs_Symbol как и любая переменная нулём инициализируется не явно что-ли?
2. Как может быть истинным условие:

PHP код:
(fs_Symbol != bs_Symbol

если значение bs_Symbol не задано?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 13:53   #1547 (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™
Сообщение от hoz Посмотреть сообщение
Рад представить ещё одно детище из той же библиотеки, которая выносит мне моск уже некоторый день, в подряд Вещи интересные, потом я всё-таки её осилю. Новый головняк ещё интереснее. Вот что имеем:

В глобальным переменных есть:

PHP код:
string bs_Symbol 

Ниже по коду ей ничего не присваивается.

Вот интересующая меня функция:

PHP код:
void fGet_MarketInfo (string fs_Symbolint fi_Ticket 0)
{
//----
     
if (fs_Symbol != bs_Symbol || fi_Ticket 0)
     {
          if (
fi_Ticket 0)
          {
             
bs_Symbol OrderSymbol();
          }
          else
          {
             
bs_Symbol fs_Symbol;
          }
          if (
bs_Symbol == Symbol())
          {
              
bi_SymDigits Digits;
              
bd_SymPoint Point;
          }
          else
          {
              
bi_SymDigits MarketInfo (fs_SymbolMODE_DIGITS);
              
bd_SymPoint MarketInfo (fs_SymbolMODE_POINT);
          }
        if (
bd_SymPoint == 0.0)
        {
           
bd_SymPoint fGet_Point (fs_Symbol);
        }
     }
     if (
fi_Ticket 0)
     {
        
fGet_OrderDetails (fi_Ticket);
     }
    
//---- Получаем текущие цены по инструменту
    
RefreshRates();
    
bda_Price[0] = NDD (fGet_TradePrice (0bb_RealTradebs_Symbol));
    
bda_Price[1] = NDD (fGet_TradePrice (1bb_RealTradebs_Symbol));
    
bd_Spread NDD (bda_Price[1] - bda_Price[0]);
//----


Смотреть на всю цепочку не обязательно. Интересуют общие аспекты.

В данный момент есть 2 вопроса по данной структуре:

1. Для чего в данном условии:

PHP код:
if (fs_Symbol != bs_Symbol || fi_Ticket 0

Сравнение символа передаваемого в функцию с bs_Symbol ? Ведь у bs_Symbol нет никакого значения вообще.. Но тип то string у данной переменной.. По умолчанию bs_Symbol как и любая переменная нулём инициализируется не явно что-ли?
2. Как может быть истинным условие:

PHP код:
(fs_Symbol != bs_Symbol

если значение bs_Symbol не задано?
Ну по сути у тебя вопрос. Такое может произойти (1,2) если в функцию не будет передан символ нужной пары. Например через отсутсвие в обзоре рынка.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
hoz (18.09.2013)
Старый 18.09.2013, 13:57   #1548 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от eevviill Посмотреть сообщение
Ну по сути у тебя вопрос. Такое может произойти (1,2) если в функцию не будет передан символ нужной пары. Например через отсутсвие в обзоре рынка.
А каким боком не не объявленная переменная bs_Symbol пришита к обзору рынка? Ведь у неё нет значения канкретного.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 14:07   #1549 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
Сообщение от hoz Посмотреть сообщение
А каким боком не не объявленная переменная bs_Symbol пришита к обзору рынка? Ведь у неё нет значения канкретного.
У нее пустое значение "" если не задано иное. У пары которой нет в обзоре рынка будет тоже "", т.е. переменные будут равны.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (18.09.2013), hoz (18.09.2013)
Старый 18.09.2013, 15:04   #1550 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от ansol Посмотреть сообщение
У нее пустое значение "" если не задано иное. У пары которой нет в обзоре рынка будет тоже "", т.е. переменные будут равны.
Разрешите уточнить.
Неинициализированная строка и пустая строка это две большие разницы. Они не равны друг другу.
Автоматической инициализации строк в MQL не предусмотрено. Так что содержание строки может не существовать аж тремя различными способами - переменная не объявлена, не инициализирована или пустая
В этой функции в посте hoz bs_Symbol помнит значение, полученное при предыдущем вызове. В принципе, законный прием, хотя это дело вкуса. Автор, похоже, люто оптимизировал мультивалютный код на скорость выполнения.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:09   #1551 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
У нее пустое значение "" если не задано иное. У пары которой нет в обзоре рынка будет тоже "", т.е. переменные будут равны.
И, опять же, какая-то не рациональная структура. Можно ж было не инициализировать bs_Symbol в глобальных, а условие задать проще, явно так:

PHP код:
 if (fs_Symbol != "" || fi_Ticket 0

Это ж даст на выходе тот же результат, верно?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:13   #1552 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
Сообщение от qqmber Посмотреть сообщение
Разрешите уточнить.
Неинициализированная строка и пустая строка это две большие разницы. Они не равны друг другу.
Автоматической инициализации строк в MQL не предусмотрено. Так что содержание строки может не существовать аж тремя различными способами - переменная не объявлена, не инициализирована или пустая
В этой функции в посте hoz bs_Symbol помнит значение, полученное при предыдущем вызове. В принципе, законный прием, хотя это дело вкуса. Автор, похоже, люто оптимизировал мультивалютный код на скорость выполнения.
Чтобы "помнить" значение, оно где-то в коде должно быть задано! (при "каком-то вызове" )
Так что, надо искать, иначе реально лажа получается.

Что касается того, чего там инициализируется в MQL4, то тут ваще темный лес. Например, целое и double можно не сравнивать с нулем, ибо оно будет false, если равно нулю и true, если не равно. Боюсь только, когда-нибудь это пофиксят и все работать перестанет
Так же и со строками - ноль, "" и "не инициализировано" как бы одно и то же.
Но, согласен, что в данном контексте использовать отдельную переменную неправильно. Значит, где-то когда-то она инициализируется, а передаваться из цикла в цикл она может, если она объявлена до блока start()

Последний раз редактировалось ansol; 18.09.2013 в 15:21.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:33   #1553 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Разрешите уточнить.
Неинициализированная строка и пустая строка это две большие разницы. Они не равны друг другу.
Автоматической инициализации строк в MQL не предусмотрено. Так что содержание строки может не существовать аж тремя различными способами - переменная не объявлена, не инициализирована или пустая
Так получается, что автоматическая инициализация предусмотрено така для типов дабл и инт, а стринг не инициализируется. Почему!? Разработчики видимо накосячили, логически это обосновать не получается.. Я проверил. Вот написал сову:

PHP код:
//+------------------------------------------------------------------+
//|                                                         TEST.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""

int a;
int _a 15;
string _string;
string _string_v "_string_v";

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   
Print("a = "a);
   Print(
"_a = "_a);
   Print(
"_string = "_string);
   Print(
"_string_v = "_string_v);
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 

В журнале видим такое:

PHP код:
2013.09.18 17:27:00    2012.01.01 22:10  TEST EURUSD,M5_string_v _string_v
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M5_string 
2013.09.18 17:27:00    2012.01.01 22:10  TEST EURUSD,M5_a 15
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M50
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M5_string_v _string_v
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M5_string 
2013.09.18 17:27:00    2012.01.01 22:10  TEST EURUSD,M5_a 15
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M50
2013.09.18 17
:27:00    2012.01.01 22:10  TEST EURUSD,M5_string_v _string_v 

Сообщение от qqmber Посмотреть сообщение
В этой функции в посте hoz bs_Symbol помнит значение, полученное при предыдущем вызове. В принципе, законный прием, хотя это дело вкуса. Автор, похоже, люто оптимизировал мультивалютный код на скорость выполнения.
Не то слово. Я приложил инклюдник. Может что-то даст для понимания...
Вложения:
Тип файла: mqh b-PSI@Trade_Light.mqh (71.4 Кб, 5 просмотров)
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:34   #1554 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
bs_Symbol гарантированно инициализируется при первом вызове fGet_MarketInfo() и скорее всего только так. По задумке, повторный вызов этой функции с тем же символом и неотрицательным тикетом экономит пару вызовов MarketInfo(). Я такую экономию не одобряю, мягко говоря.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:54   #1555 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от ansol Посмотреть сообщение
Что касается того, чего там инициализируется в MQL4, то тут ваще темный лес.
Ага, еще добавить, при каких действиях выполняется init(), а при каких сбрасываются extern, всё на один лист и над столом прибить.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 15:55   #1556 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от ansol Посмотреть сообщение
Чтобы "помнить" значение, оно где-то в коде должно быть задано! (при "каком-то вызове" )
Так что, надо искать, иначе реально лажа получается.

Обычно вызов такой:

PHP код:
fGet_MarketInfo (OrderSymbol(), fi_Ticket); 

Каким боком здесь пришита переменная bs_Symbol ума не приложу

Сообщение от ansol Посмотреть сообщение
Так же и со строками - ноль, "" и "не инициализировано" как бы одно и то же.

Смею предположить, что ноль и "пустое значение" это не одно и тоже..

Сообщение от ansol Посмотреть сообщение
Но, согласен, что в данном контексте использовать отдельную переменную неправильно. Значит, где-то когда-то она инициализируется, а передаваться из цикла в цикл она может, если она объявлена до блока start()

Судя по вышеуказанному вызову, обычному у него, вместо переменной fs_Symbol передётся OrderSymbol() вообще... Но нулём то не будет переменная bs_Symbol, т.к. я уже показал и доказал выше постом. А будет там пустое значение..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 16:01   #1557 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
Цитата:
А будет там пустое значение
Выше qqmber написал, что пустым оно будет до первого вызова рассматриваемой функции, после чего оно пустым уже точно не будет, если в головной проге её не "потерять" по невнимательности
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 16:10   #1558 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
bs_Symbol гарантированно инициализируется при первом вызове fGet_MarketInfo() и скорее всего только так. По задумке, повторный вызов этой функции с тем же символом и неотрицательным тикетом экономит пару вызовов MarketInfo(). Я такую экономию не одобряю, мягко говоря.
По ходу ничего bs_Symbol не инициализируется первоначально при вызове её из функции.
Доказательство:

PHP код:
//+------------------------------------------------------------------+
//|                                                         TEST.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""

int a;
int _a 15;
string bs_Symbol;
string _string;
string _string_v "_string_v";

// МаркетИнфо
void fGet_MarketInfo (string fs_Symbolint fi_Ticket 0)
   {
//----
       
if (fs_Symbol != bs_Symbol || fi_Ticket 0)
       {
           if (
fi_Ticket 0)
           {
              
bs_Symbol OrderSymbol();
           }
           else
            {
              
bs_Symbol fs_Symbol;
           }
       }
   }

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

   
fGet_MarketInfo(OrderSymbol(), -1);
   
   Print(
"a = "a);
   Print(
"_a = "_a);
   Print(
"_string = "_string);
   Print(
"_string_v = "_string_v);
   Print(
"bs_Symbol = "bs_Symbol);
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 

В журнале видим:

PHP код:
2013.09.18 18:06:11    2012.01.01 22:31  TEST EURUSD,M5bs_Symbol 
2013.09.18 18:06:11    2012.01.01 22:31  TEST EURUSD,M5_string_v _string_v
2013.09.18 18
:06:11    2012.01.01 22:31  TEST EURUSD,M5_string 
2013.09.18 18:06:11    2012.01.01 22:31  TEST EURUSD,M5_a 15
2013.09.18 18
:06:11    2012.01.01 22:31  TEST EURUSD,M50
2013.09.18 18
:06:11    2012.01.01 22:31  TEST EURUSD,M5bs_Symbol 
2013.09.18 18:06:11    2012.01.01 22:31  TEST EURUSD,M5_string_v _string_v
2013.09.18 18
:06:11    2012.01.01 22:31  TEST EURUSD,M5_string 
2013.09.18 18:06:11    2012.01.01 22:31  TEST EURUSD,M5_a 15
2013.09.18 18
:06:11    2012.01.01 22:31  TEST EURUSD,M5

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

Слушаю ещё варианты
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 16:20   #1559 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
Ага, еще добавить, при каких действиях выполняется init(), а при каких сбрасываются extern, всё на один лист и над столом прибить.
Хм. extern сбрасываются? Это как?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.09.2013, 19:31   #1560 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
hoz
Попробовал... Облом какой-то, надо подумать.
Про extern - переменные, объявленные в extern можно потом менять
Вопрос на засыпку - а когда они обратно к дефолтным скинутся?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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