Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1377

 
Michail_David:

Ich habe selbst nicht verstanden, Alexey, wo er dieses Währungspaar ausgegraben hat )))

Das kommt vor... Über eine Sache nachgedacht, über eine andere geschrieben... Das Gleiche bei mir selbst.........)))

 
Alexey Viktorov:

Entweder sind die Skier schlecht... Ich kann keine Erwähnung dieses Paares in den Beiträgen von Michail_David finden... Überall steht USDJPY

Falsche Spur )))) Ich ;) Ich habe es falsch verstanden.

Tatsächlich ist das Paar aber eine Zeichenkette und sollte nicht in Anführungszeichen gesetzt werden.

@Michail_David

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

vlt - das Paar, das Sie suchen (oder ein bisschen davon :)))

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

Falsche Spur )))) Ich ;) Ich habe es falsch verstanden.

Aber im Wesentlichen ist ein Paar eine Zeichenkette, in die keine Anführungszeichen gesetzt werden sollten.

@Michail_David

vlt - gesuchtes Paar (oder ein Teil davon :)))

Sergej, ich danke Ihnen. Ich verstehe die Idee.

 

Hallo. Bitte beraten Sie mich.

1. Ein EA handelt eine Reihe von Aufträgen (Kaufen-Verkaufen-Kaufen-Verkaufen-...). Die Serie wird mit dem Auftrag beendet, der mit einem Gewinn abgeschlossen wurde. Wie wird sie umgesetzt?

2. Das nächste Problem. Die erste Serie ist noch nicht abgeschlossen (wir haben keinen Gewinnauftrag erhalten), und die zweite ist bereits angelaufen. Wie kann man sie für den Expert Advisor "aufteilen"?

Ich danke Ihnen.

 
Forallf:

Hallo. Bitte beraten Sie mich.

1. Ein EA handelt eine Reihe von Aufträgen (Kaufen-Verkaufen-Kaufen-Verkaufen-...). Die Serie wird mit dem Auftrag beendet, der mit einem Gewinn abgeschlossen wurde. Wie wird sie umgesetzt?

2. Das nächste Problem. Die erste Serie ist noch nicht abgeschlossen (wir haben keinen Gewinnauftrag erhalten), und die zweite ist bereits angelaufen. Wie kann man sie für den Expert Advisor "aufteilen"?

Ich danke Ihnen.

1 Die Bedingung ist zu vage, um zu helfen...

2 Unterschiedliche "Magie" verwenden

 

Guten Tag, liebe Kolleginnen und Kollegen. Sägt weiter an der GralsmaschineJ. Ich muss den Code überarbeiten und dabei vorzugsweise Funktionen verwenden, weil ich es leid bin, mich durch eine Menge Code zu scrollen. Ich möchte die Funktionen in separate Include-Dateien verschieben. Ich habe eine Funktion zum Abrufen von Signalen durch den ao-Indikator in der EA-Datei erstellt und es funktioniert gut.

Mein Roboter öffnet sogar Trades, aber wenn ich eine Plugin-Datei SIGNALS_INDIKATOR. Ich verbinde es in meinem Expert Advisor wie folgt.

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




Ich schreibe auch meine Funktion für das Erhalten von Signalen durch diese Art von Anlage, aber diese Funktion zeigt nicht meine externen Variablen, die ich leicht an den EA selbst übergeben haben. Die Funktion, um den Wert des Indikators in meinem EA zu erhalten, ist wie folgt.

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



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

Befindet sich diese Funktion in der EA-Datei unter dem Tick und dem Timer, sind die als Externs deklarierten Variablen in dieser Funktion deutlich sichtbar. Aber wenn ich diese Funktion komplett kopiere und in eine Include-Datei einfüge, sind die externen Variablen in der Funktion nicht sichtbar.

Die Frage ist, was sollte ich tun, um externe Variablen in den Funktionen in der Include-Datei sichtbar zu machen, sowie diese Variablen in den EA-Funktionen sichtbar sind, die ich unterhalb des Timers schreibe?

 
DanilaMactep:

Guten Tag, liebe Kolleginnen und Kollegen. Sägt weiter an der GralsmaschineJ. Ich muss den Code überarbeiten und dabei vorzugsweise Funktionen verwenden, weil ich es leid bin, mich durch eine Menge Code zu scrollen. Ich möchte die Funktionen in separate Include-Dateien verschieben. Ich habe eine Funktion zum Abrufen von Signalen durch den ao-Indikator in der EA-Datei erstellt und es funktioniert gut.

Mein Roboter öffnet sogar Trades, aber wenn ich eine Plugin-Datei SIGNALS_INDIKATOR. Ich verbinde es in meinem Expert Advisor wie folgt.


Ich schreibe auch meine Funktion für das Erhalten von Signalen durch diese Art von Anlage, aber diese Funktion zeigt nicht meine externen Variablen, die ich leicht an den EA selbst übergeben haben. Die Funktion, um den Wert des Indikators in meinem EA zu erhalten, ist wie folgt.

Befindet sich diese Funktion in der EA-Datei unter dem Tick und dem Timer, sind die als Externs deklarierten Variablen in dieser Funktion deutlich sichtbar. Aber wenn ich diese Funktion komplett kopiere und in eine Include-Datei einfüge, sind die externen Variablen in der Funktion nicht sichtbar.

Die Frage ist, was sollte ich tun, um externe Variablen in den Funktionen in der Include-Datei sichtbar zu machen, sowie diese Variablen in den EA-Funktionen sichtbar sind, die ich unterhalb des Timers schreibe?

externe Variablen - was sind sie?
 
MakarFX:
Externe Variablen - was sind sie?

Ich werde ein Stück Code mit ihnen einfügen.


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

Ich habe die externen Variablen gelb hervorgehoben. Diese Variablen werden angezeigt, wenn der EA mit dem Diagramm auf der Registerkarte Eingabeparameter verbunden ist

 
DanilaMactep:

Ich werde ein Stück Code mit ihnen einfügen.


Ich habe die externen Variablen gelb hervorgehoben. Diese Variablen werden angezeigt, wenn der EA mit dem Diagramm auf der Registerkarte Eingabeparameter verbunden ist

Sie verwenden jetzt "input" statt "extern".

Sie müssen auch Ihre "externen Variablen" in die Bibliothek SIGNALS_INDIKATOR.mqh verschieben

 
DanilaMactep:

Ich werde ein Stück Code mit ihnen einfügen.

Die globalen Variablen im EA-Körper sind nur für den EA und nicht für die Plugins sichtbar,

aber globale Variablen im Körper des Plugins sind überall sichtbar.

Grund der Beschwerde: