Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1377

 
Michail_David:

Io stesso non ho capito, Alexey, dove ha scavato questa coppia di valute )))

Succede... Pensato a una cosa, scritto a un'altra... Stessa cosa io.........)))

 
Alexey Viktorov:

O gli sci sono cattivi... Non riesco a trovare alcuna menzione di questa coppia nei post di Michail_David ... Ovunque si dice USDJPY

Pista sbagliata )))) Io ;) Ho sbagliato.

Ma di fatto - la coppia è una stringa e non bisogna metterci le virgolette.

@Michail_David

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

vlt - la coppia che stai cercando (o un po' di essa :))

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

Pista sbagliata )))) Io ;) Ho sbagliato.

Ma in sostanza - una coppia è una stringa e non si dovrebbero mettere virgolette.

@Michail_David

vlt - coppia ricercata (o parte di essa :))

Sergey, grazie. Capisco l'idea.

 

Salve. Si prega di avvisare.

1. Un EA scambierà una serie di ordini (compra-vendita-acquisto-vendita-...). La serie si concluderà con l'ordine che ha chiuso con un profitto. Come implementarlo?

2. Il prossimo problema. La prima serie non è ancora stata completata (non abbiamo avuto un ordine di profitto), e la seconda è iniziata. Come "dividerli" per l'Expert Advisor?

Grazie.

 
Forallf:

Salve. Si prega di avvisare.

1. Un EA scambierà una serie di ordini (compra-vendita-acquisto-vendita-...). La serie si concluderà con l'ordine che ha chiuso con un profitto. Come implementarlo?

2. Il prossimo problema. La prima serie non è ancora stata completata (non abbiamo avuto un ordine di profitto), e la seconda è già iniziata. Come "dividerli" per l'Expert Advisor?

Grazie.

1 La condizione è troppo vaga per aiutare...

2 Usare diversi "magiks"

 

Buon pomeriggio a tutti. Continuando a segare la macchina del GraalJ. Devo rifare il codice con una preferenza per l'uso di funzioni, perché sono stanco di scorrere una tonnellata di codice. Voglio spostare le funzioni in file include separati. Ho creato la funzione per ottenere il segnale dall'indicatore ao nel file EA per la prova e funziona bene.

Il mio robot apre anche i trade, ma se creo un file plugin SIGNALS_INDIKATOR. Lo collego nel mio Expert Advisor in questo modo.

//+------------------------------------------------------------------+
//|                                           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> 
// А НИЖЕ ПОШЛИ ЕНУМЫ И ЭКСТЕРН ПЕРЕМЕННЫЕ




Scrivo anche la mia funzione per ottenere segnali da questo tipo di attacco, ma questa funzione non mostra le mie variabili esterne che ho facilmente passato all'EA stesso. La funzione di ottenere il valore dell'indicatore nel mio EA è così.

//НАЧАЛО ПОЛУЧЕНИЯ ДАННЫХ ПО АО СЕЛЛ------------------------------------------------------------------------------------------+
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);



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

Se questa funzione si trova nel file EA sotto il tick e il timer, le variabili dichiarate come esterne sono chiaramente visibili in questa funzione. Ma se copio e incollo completamente questa funzione in un file include, le variabili esterne non sono visibili nella funzione.

La domanda è: cosa devo fare per rendere le variabili esterne visibili nelle funzioni nel file include, così come queste variabili sono visibili nelle funzioni EA, che scrivo sotto il timer?

 
DanilaMactep:

Buon pomeriggio a tutti. Continuando a segare la macchina del GraalJ. Devo rifare il codice con una preferenza per l'uso di funzioni, perché sono stanco di scorrere una tonnellata di codice. Voglio spostare le funzioni in file include separati. Ho creato la funzione per ottenere il segnale dall'indicatore ao nel file EA per la prova e funziona bene.

Il mio robot apre anche i trade, ma se creo un file plugin SIGNALS_INDIKATOR. Lo collego nel mio Expert Advisor in questo modo.


Scrivo anche la mia funzione per ottenere segnali da questo tipo di attacco, ma questa funzione non mostra le mie variabili esterne che ho facilmente passato all'EA stesso. La funzione di ottenere il valore dell'indicatore nel mio EA è così.

Se questa funzione si trova nel file EA sotto il tick e il timer, le variabili dichiarate come esterne sono chiaramente visibili in questa funzione. Ma se copio e incollo completamente questa funzione in un file include, le variabili esterne non sono visibili nella funzione.

La domanda è: cosa devo fare per rendere le variabili esterne visibili nelle funzioni nel file include, così come queste variabili sono visibili nelle funzioni EA, che scrivo sotto il timer?

variabili esterne - cosa sono?
 
MakarFX:
variabili esterne - cosa sono?

Inserirò un pezzo di codice con loro-


//+------------------------------------------------------------------+
//|                                           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;// ОРДЕРА ОТКРЫТИЯ?

Ho evidenziato le variabili esterne in giallo. Queste variabili sono visualizzate quando l'EA è collegato al grafico nella scheda dei parametri di input

 
DanilaMactep:

Inserirò un pezzo di codice con loro-


Ho evidenziato le variabili esterne in giallo. Queste variabili sono visualizzate quando l'EA è collegato al grafico nella scheda dei parametri di input

Ora usano "input" invece di "extern".

Devi anche spostare le tue "variabili esterne" nella libreria SIGNALS_INDIKATOR.mqh

 
DanilaMactep:

Inserirò un pezzo di codice con loro-

Levariabili globali nel corpo dell'EA sono visibili solo all'EA e non ai plugin,

ma le variabili globali nel corpo del plugin sono visibili ovunque.