Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1377

 
Michail_David:

Я сам не понял, Алексей, где он эту валютную пару выкопал ))

Да бывает… Думал об одном, писал о другом… Сам такой-же………)))

 
Alexey Viktorov:

То-ли лыжи плохие… Что-то я не нахожу в сообщениях Michail_David упоминания о такой паре… Везде говорится USDJPY

Лыжня не та )))) У меня ;) Чёй-то напутал.

Но по сути - пара это строка и никакие кавычки в неё всовывать не надо.

@Michail_David

for(int i = SymbolsTotal(in_market_watch) - 1; i >= 0; i--)
   {
      if(StringFind(SymbolName(i,in_market_watch),vlt) >= 0)

vlt - искомая пара (или кусочек ея :) )))

 
Сергей Таболин:

Лыжня не та )))) У меня ;) Чёй-то напутал.

Но по сути - пара это строка и никакие кавычки в неё всовывать не надо.

@Michail_David

vlt - искомая пара (или кусочек ея :) )))

Сергей, спасибо. Идею понял.

 

Здравствуйте. Прошу подсказать.

1. Советник будет торговать серией ордеров (покупка-продажа-покупка-продажа-...). Серия заканчивается ордером, закрывшимся с прибылью. Как это реализовать?

2. Следующая проблема. Первая серия еще не окончена (не было "плюсового" ордера) и запускается вторая. Как их "разделить" для советника?

Спасибо.

 
Forallf:

Здравствуйте. Прошу подсказать.

1. Советник будет торговать серией ордеров (покупка-продажа-покупка-продажа-...). Серия заканчивается ордером, закрывшимся с прибылью. Как это реализовать?

2. Следующая проблема. Первая серия еще не окончена (не было "плюсового" ордера) и запускается вторая. Как их "разделить" для советника?

Спасибо.

1 Слишком размыто условие, чтобы помочь...

2 Используй разные "магики"

 

Всем добрый день. Продолжаю пилить Грааль машинуJ. Приходиться переделывать код с уклоном на использование функций, а то задолбало пролистывать тонну кода. Хочу вынести функции в отдельные подключаемые файлы. Для пробы в самом файле советника создал функцию на получение сигнала по индикатору ао- всё хорошо работает.

 Грааль машина даже сделки открывает;-) но если я создаю подключаемый файл SIGNALS_INDIKATOR. И подключаю его в советнике вот таким Макаром.

//+------------------------------------------------------------------+
//|                                           TREND+_V_1.0 |
//|                                                    ДАНЯ ГАГАРКИН |
//|                                     https://vk.com/danila_mastep |
//+------------------------------------------------------------------+
#property copyright "ДАНЯ ГАГАРКИН"
#property link      "https://vk.com/danila_mastep"
#property version   "1.00"
#property strict
//НАЧАЛО ВХОДНЫХ ПЕРЕМЕННЫХ И ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ------------------------------------------------------------------------------------------+
int intBars;// ПЕРЕМЕННАЯ ДЛЯ ОПЕРДЕЛЕНИЯ КОЛИЧЕСТВА БАРОВ, ЧТОБЫ ОПРЕДЕЛИТЬ ПОЯВЛЕНИЕ НОВОГО



#include <TREND+\SIGNALS_INDIKATOR.mqh> 
// А НИЖЕ ПОШЛИ ЕНУМЫ И ЭКСТЕРН ПЕРЕМЕННЫЕ




 И переношу в этот подключаемый файл свою функцию с получением сигнала по ао, то в этой функции не видно моих экстерн переменных которые я спокойно передавал в самом советнике. А сама функция получения значения из индикатора в советнике вот такая.

//НАЧАЛО ПОЛУЧЕНИЯ ДАННЫХ ПО АО СЕЛЛ------------------------------------------------------------------------------------------+
double f_ao_sell()
{ double ao_sell = iCustom(Symbol(),PeriodForWork, //Таймфрейм на котором искать дивергенции

"1)SEARCH_DIVERGENCE",
Params, // Параметры транслирования сигналов
ModeSignalsCTS, // транслировать сигналы в cts?
LifetimeOfSignal, //Время жизни сигнала в баарх рабочего тф
CTS_Name, // имя для cts 
Div_Params, // параметры поиска дивергенции
PeriodForWork, // Таймфрейм на котором искать дивергенции

SearchAccuracy, // Режим поиска совпадений
NumBarAccuracy, // количество баров не точности поиска пиков
KoeffDistanceBetween,// коэффициент разницы между экстремумами
WidthChartLine, // толщина линий на графике цены

WidthIndicatorstLine,// толщина линий в окне индикаторов
ShiftArrow, // смещение значков
AO_Params,  // Параметры АО
UseAO,  // Искать дивергенции на АО
ColorUpperAO,  // цвет верхних линий дивергенций АО
ColorLowerAO, // цвет нижних линий дивергенций АО
Stoch_Params, // параметры стохастик
UseStoch, // искать дивергенции на стохастик
ModeLineSTO, // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
Period_K, // период %К стохастик
Period_D, // период %Д стохастик
Slowing, // замедление стохастик
AppledPriceSTO, // цены расчёта стохастик
MethodMAStoch, // метод МА стохастик
UpperLevelSTO, // верхний уровень стохастик
LowerLewelSTO, // нижний уровень стохастик
ColorUpperSTO, // цвет верхних линий дивергенций стохастик
ColorLowerSTO, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

RSI_Params, // ПАРАМЕТРЫ RSI
UseRSI, // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
PeriodRSI, // ПЕРИОД RSI
AppledPriceRSI, // ПРИМЕНИТЬ К
UpperLevelRSI, // ВЕРХНИЙ УРОВЕНЬ RSI
LowerLewelRSI, // НИЖНИЙ УРОВЕНЬ RSI
ColorUpperRSI, // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
ColorLowerRSI, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
MACD_Params, // ПАРАМЕТРЫ MACD
UseMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
ModeLineMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
FastEMA_MACD, // БЫСТРОЕ EMA MACD
SlowEMA_MACD, // МЕДЛЕННОЕ EMA MACD
PeriodSignalMACD, // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
AppledPriceMACD, // ПРИМЕНИТЬ К:
ColorUpperMACD, // ЦВЕТ ВЕРХНИХ  ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
ColorLowerMACD, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
Notifications_Params, // ПАРАМЕТРЫ ОПОВЕЩЕНИЙ 
UseAlerts, // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ 
UseMail, // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ 
UsePush, // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ 
2, //ВТОРОЙ БУФЕР- АО СЕЛЛ
0 // СИГНАЛ НА НУЛЕВОЙ СВЕЧЕ ИЗ-ЗА ОСОБЕННОСТЕЙ ИНДИКАТОРА
);

return(ao_sell);



}//КОНЕЦ ПОЛУЧЕНИЯ ДАННЫХ ПО АО СЕЛЛ------------------------------------------------------------------------------------------+

Если эта функция находиться в файле советника ниже он тика и он таймера то переменные которые объявлены как экстерн прекрасно видны внутри этой функции. А если я эту функцию полностью копирую и вставляю в подключаемый файл то там экстерн переменные внутри функции не видны.

Вопрос – что нужно сделать чтобы экстерн переменные были видны в функциях в подключаемом файле так же как эти переменные видно в функциях советника, которые пишу ниже он таймера?

 

 
DanilaMactep:

Всем добрый день. Продолжаю пилить Грааль машинуJ. Приходиться переделывать код с уклоном на использование функций, а то задолбало пролистывать тонну кода. Хочу вынести функции в отдельные подключаемые файлы. Для пробы в самом файле советника создал функцию на получение сигнала по индикатору ао- всё хорошо работает.

 Грааль машина даже сделки открывает;-) но если я создаю подключаемый файл SIGNALS_INDIKATOR. И подключаю его в советнике вот таким Макаром.


 И переношу в этот подключаемый файл свою функцию с получением сигнала по ао, то в этой функции не видно моих экстерн переменных которые я спокойно передавал в самом советнике. А сама функция получения значения из индикатора в советнике вот такая.

Если эта функция находиться в файле советника ниже он тика и он таймера то переменные которые объявлены как экстерн прекрасно видны внутри этой функции. А если я эту функцию полностью копирую и вставляю в подключаемый файл то там экстерн переменные внутри функции не видны.

Вопрос – что нужно сделать чтобы экстерн переменные были видны в функциях в подключаемом файле так же как эти переменные видно в функциях советника, которые пишу ниже он таймера?

 

экстерн переменные - что это?
 
MakarFX:
экстерн переменные - что это?

 Вставлю кусок кода с ними-


//+------------------------------------------------------------------+
//|                                           TREND+DIVERGENCE_V_1.0 |
//|                                                    ДАНЯ ГАГАРКИН |
//|                                     https://vk.com/danila_mastep |
//+------------------------------------------------------------------+
#property copyright "ДАНЯ ГАГАРКИН"
#property link      "https://vk.com/danila_mastep"
#property version   "1.00"
#property strict
//НАЧАЛО ВХОДНЫХ ПЕРЕМЕННЫХ И ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ------------------------------------------------------------------------------------------+
int intBars;// ПЕРЕМЕННАЯ ДЛЯ ОПЕРДЕЛЕНИЯ КОЛИЧЕСТВА БАРОВ, ЧТОБЫ ОПРЕДЕЛИТЬ ПОЯВЛЕНИЕ НОВОГО



#include <TREND+DIVERGENCE\SIGNALS_INDIKATOR.mqh> 



enum enumCoincidence
  {
   enCoinAccurate=1,    // Точный
   enCoinApproximate=0, // Приближенный
  };
  enum enumYN
  {
   enYes=1, // Да
   enNo=0,  // Нет
  };
  
  enum enumSL //ПЕРЕЧИСЛЕНИЕ ДЛЯ СТОП ЛОССА
  {
   en_fiks=1, // ФИКСИРОВАННЫЙ В ПУНКТАХ
   en_po_atr=0,  // ПО АТР
  };
  // ПЕРЕЧИСЛЕНИЕ ДЛЯ ВКЛЮЧЕНИЯ ПЕРВОГО ЭКРАНА
  
   enum enum_screen1 //ПЕРЕЧИСЛЕНИЕ ДЛЯ ПЕРВОГО ЭКРАНА
  {
   en_on_screen1=1, //  1 ЭКРАН ON
   en_off_screen1=0,  //  1 ЭКРАН OFF
  };
  //ЕНУМ 2-ГО ЭКРАНА
  
   enum enum_screen2 //ПЕРЕЧИСЛЕНИЕ ДЛЯ ВТОРОГО ЭКРАНА
  {
   en_on_screen2=1,    //  2 ЭКРАН ON
   en_off_screen2=0,  // 2 ЭКРАН OFF
  };
  
    enum enum_use_filter //ПЕРЕЧИСЛЕНИЕ ДЛЯ ОТКРЫТИЯ ОТОЛЖАК С ФИЛЬТРОМ ИЛИ БЕЗ
  {
   en_bez_filtra=1,    // БЕЗ ЦЕНОВОГО ФИЛЬТРА
   en_c_filbtpom=0,  // С ЦЕНОВЫМ ФИЛЬТРОМ
  };
  
  //-- ПЕРЕЧИСЛЕНИЕ ДЛЯ ТИПА ОРДЕРОВ
  
  enum enum_tip_orderov
  {
   en_otlojki=1,    // ОТЛОЖЕННЫЕ
   en_rbIno4nbIe=0, // РЫНОЧНЫЕ
  };
  
  //--- ПЕЕРЧИСЛЕНИЕ ДЛЯ ВКЛЮЧЕНИЯ ТРАЛА
      enum enum_use_tral 
  {
   en_on_tral=1,    // С ТРАЛОМ
   en_off_tral=0,  // БЕЗ ТРАЛА
  };
  
  
  enum enumModeLINE
  {
   enMdMain=MODE_MAIN,  // Main
   enMdSign=MODE_SIGNAL,// Signal
  };
  enum enumSignalsMode
  {
   enBuy=0,             // Только Buy
   enSell=1,            // Только Sell
   enBoth=2,            // Buy и Sell
   
  };
  
  extern string  Params = "-- ПАРАМЕТРЫ ОТКРЫТИЯ СДЕЛКИ --";//======================================
  
  extern int slippages= 5; // ПРОСКАЛЬЗЫВАНИЕ
  extern int MaxRisk=1;//  % УБЫТКА ПРИ SL
  extern int razmer_fikc_sl= 500;// ФИКСИРОВАННЫЙ SL П/П?
  extern enum_screen1 flag_screen1= en_on_screen1; // ВКЛ-ВЫКЛ 1 ЭКРАН
  extern enum_screen2 flag_screen2= en_on_screen2; // ВКЛ-ВЫКЛ 2 ЭКРАН
  extern enum_tip_orderov kakie_ordera= en_rbIno4nbIe;// ОРДЕРА ОТКРЫТИЯ?

экстерн переменные я выделил жёлтым цветом. Эти переменные отображаются при прикреплении советника на график в вкладке входные параметры

 
DanilaMactep:

 Вставлю кусок кода с ними-


экстерн переменные я выделил жёлтым цветом. Эти переменные отображаются при прикреплении советника на график в вкладке входные параметры

Сейчас используют вместо "extern" "input"

тебе надо твои "экстерн переменные " тоже перенести в библиотеку SIGNALS_INDIKATOR.mqh

 
DanilaMactep:

 Вставлю кусок кода с ними-

Глобальные переменные в теле советника видны только советнику и не видны подключаемым файлам,

но глобальные переменные в теле подключаемого файла видны везде.

Причина обращения: