Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 871

 

¿Qué estoy haciendo mal? En el m5 cambia bien, pero no más allá

extern string helper111="Настройки Helper";//Helper
extern bool helperTRUE=TRUE;        //Вкл/Выкл Helper
extern bool timeM1=TRUE;            //Переключения на М старт когда ордера все закрыты
extern int helper_period=PERIOD_M5; //Периуд М старт в минутах
extern int helper_period0=PERIOD_H1;//Базовый таймфрейм работы советника
extern int order_period1=6;         //Колво ордеров для переключения на Time 1
extern int helper_period1=PERIOD_D1;//Time 1 в минутах
extern int order_period2=8;         //Колво ордеров для переключения на Time 2
extern int helper_period2=PERIOD_W1;//Time 2 в минутах


int helperrr()
{
   if(helperTRUE==TRUE) {  
   if(timeM1==TRUE && NumberOfPositions()==0) ChartSetSymbolPeriod(0, NULL, helper_period);
   else {
   if(((NumberOfPositions1()>=0 && NumberOfPositions1()<order_period1)
   || (NumberOfPositions1()>=0 && NumberOfPositions2()<order_period1)
   || (NumberOfPositions1()>=0 && NumberOfPositions3()<order_period1)) && _Period != helper_period0)
   ChartSetSymbolPeriod(0, NULL, helper_period0);
   if((NumberOfPositions1()>=order_period1 && NumberOfPositions1()<order_period2 && OrderMagicNumber()==MagicNumber_1)
   || (NumberOfPositions2()>=order_period1 && NumberOfPositions2()<order_period2 && OrderMagicNumber()==MagicNumber_2)
   || (NumberOfPositions3()>=order_period1 && NumberOfPositions3()<order_period2 && OrderMagicNumber()==MagicNumber_3))
   ChartSetSymbolPeriod(0, NULL, helper_period1);
   if((NumberOfPositions1()>=order_period2 && OrderMagicNumber()==MagicNumber_1)
   || (NumberOfPositions2()>=order_period2 && OrderMagicNumber()==MagicNumber_2)
   || (NumberOfPositions3()>=order_period2 && OrderMagicNumber()==MagicNumber_3))
   ChartSetSymbolPeriod(0, NULL, helper_period2);
   }
   }
   return(0);
}
 
fxsaber:

No he encontrado ninguna herramienta de negociación como el índice del dólar, etc. (¿indicadores?)

no se les permite comerciar con ellos, ¿cómo se comportará su código?

 
Igor Makanu:

No he encontrado ninguna herramienta de negociación como el índice del dólar, etc. (¿indicadores?)

Si se prohíbe comerciar con ellos, ¿cómo se comportará su código?

El falso OrderSend de un EA no siempre permite determinar su configuración.


El código que he proporcionado muestra la configuración de cualquier EA, independientemente de las propiedades de los símbolos y otros. Por ejemplo, ejecutar un EA de algún tipo y luego este script en el mismo gráfico

// Скрипт показывает, в каком режиме Long/Short запущен советник на данном чарте.
void OnStart()
{
  Alert(LongShortToString());
}
 
fxsaber:

El falso OrderSend de un EA no siempre revela su configuración.


El código que he proporcionado muestra la configuración de cualquier EA, independientemente de las propiedades de los símbolos y otros. Por ejemplo, ejecutar un EA de algún tipo y luego este script en el mismo gráfico

comprobado, funciona, pero

1. en el debate https://www.mql5.com/ru/forum/214590/page6#comment_11947599

el código debería ser sustituido por return(INIT_SUCCEED); - lo he probado y no he entendido donde faltaba el EA ))

2. No entiendo por qué, cuando selecciono las propiedades del EA y pongo una casilla diferente, la alerta no vuelve a aparecer, cuando cambio de TFs, todo es normal

Библиотеки: Expert
Библиотеки: Expert
  • 2019.04.23
  • www.mql5.com
Expert: Автор: fxsaber...
 
fxsaber:

El falso OrderSend de un EA no siempre revela su configuración.


El código que he proporcionado muestra la configuración de cualquier EA, independientemente de las propiedades de los símbolos y otros. Por ejemplo, ejecutar un EA de algún tipo y luego este script en el mismo gráfico

¿es posible añadir su código al EA?

int testTicket=OrderSend(Symbol(),OP_SELL,0.01,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0.01,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

Con este código abre infinitamente órdenes largas y cortas en xauusd

 
Lomonosov1991:

¿Puedo añadir su código a mi EA?

Sí.


Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias

Cualquier pregunta para principiantes de MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos

Lomonosov1991, 2019.06.04 19:01

int testTicket=OrderSend(Symbol(),OP_SELL,0.01,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0.01,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

Con este código abre infinitamente órdenes largas y cortas en xauusd

La idea es que necesitas exactamente cero volúmenes.
 
fxsaber:

Sí.


La idea aquí es que necesitas exactamente cero volúmenes.
Abre 0,01 lotes sin volumen.
int testTicket=OrderSend(Symbol(),OP_SELL,0,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

y eso no funciona en absoluto.

int testTicket=OrderSend(Symbol(),OP_SELL,0,0,0,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0,0,0,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";





 
Igor Makanu:

comprobado, funciona, pero

1. en el debate en https://www.mql5.com/ru/forum/214590/page6#comment_11947599

Debería reemplazar el código con return(INIT_SUCCEED); - Lo probé y no entendí donde faltaba el Asesor Experto ))

En este ejemplo puse FAILED a propósito, para no tener que quitarlo manualmente después.

2. No entiendo por qué, cuando selecciono las propiedades del EA y marco otra casilla, la alerta no vuelve a aparecer, cuando cambio de TFs, todo es normal

Al cambiar de Largo/Corto no hay llamada OnDeinit/OnInit.

 
No entiendo cómo ejecutarlo((
Archivos adjuntos:
 
fxsaber:

No hay llamada OnDeinit/OnInit al cambiar de Largo/Corto.

comportamiento extraño, normalmente OnIniT() se ejecuta después de llamar a la ventana de configuración.


Lomonosov1991:
No entiendo cómo ejecutarlo((

adjunta la muestra, descomprímela y distribúyela en carpetas

Archivos adjuntos:
MQL4.zip  5 kb