¿Cómo codificar? - página 290

 

...

No estoy seguro de si esto va a resolver su problema, pero echa un vistazo a esto : https://www.mql5.com/en/forum/general

Pava:
¿Cómo hacer que mi ordenador muestre correctamente las palabras en ruso en los indicadores?...Gracias...
 

...

mladen:
No estoy seguro de que esto resuelva tu problema, pero echa un vistazo a esto : https://www.mql5.com/en/forum/general

gracias... lo intentaré

 

...

Este es un ejemplo... ¡A mi Mac no le gusta!:)

"

//

// VisualOrders.mq4

// Dmitry Yakovlev

// dmitry_yakovlev@rambler.ru

// ?? ???? WebMoney R865705290089

//------------------------------------------------------------------

#property copyright "Dmitry Yakovlev, Russia,Omsk, WM R865705290089"

#property link "dmitry_yakovlev@rambler.ru"

#property indicator_chart_window

#importar "shell32.dll" /Conectar una dll (proporcionada con Windows)

int ShellExecuteA(int hwnd,cadena Operación,cadena Archivo,cadena Parámetros,cadena Directorio,int ShowCmd);

#importar "user32.dll"

int MessageBoxA(int hWnd ,string lpText,string lpCaption,int uType);

#importar

extern string _ModeProf="??????? 1-???????.,2-??????";

extern int ModeProf=2;

extern string _orders="?????????? ?????? ?? ???????:";

extern string _Type = "0 ???,-1 Sell,1 Buy";

extern int Tipo = 0;

extern bool CurOrders=true;

extern int lblSize=1;

extern bool HistOrders=true;

extern bool ShowProfits=true;

extern int ShiftProfits=0;

extern bool lShowTargets=true;

extern string _donate1="? ???? :-) WebMoney";

extern string _donate2="R865705290089";

"

 

...

Esas son letras cirílicas, por eso no se muestran

Si tienes problemas para verlas en el metaeditor, haz lo siguiente : en el menú del metaeditor herramientas->opciones->fuente pon la escritura en cirílico. Usted todavía será capaz de ver las letras latinas regulares + usted va a ver el ruso también (así :

Al mostrarlo en la ventana del terminal, me temo que sólo lo verás si tienes instalado el Windows ruso

Pava:
Este es un ejemplo... ¡A mi Mac no le gusta!:)

"

//

// VisualOrders.mq4

// Dmitry Yakovlev

// dmitry_yakovlev@rambler.ru

// ?? ???? WebMoney R865705290089

//------------------------------------------------------------------

#property copyright "Dmitry Yakovlev, Russia,Omsk, WM R865705290089"

#property link "dmitry_yakovlev@rambler.ru"

#property indicator_chart_window

#importar "shell32.dll" /Conectar una dll (proporcionada con Windows)

int ShellExecuteA(int hwnd,cadena Operación,cadena Archivo,cadena Parámetros,cadena Directorio,int ShowCmd);

#importar "user32.dll"

int MessageBoxA(int hWnd ,string lpText,string lpCaption,int uType);

#importar

extern string _ModeProf="??????? 1-???????.,2-??????";

extern int ModeProf=2;

extern string _orders="?????????? ?????? ?? ???????:";

extern string _Type = "0 ???,-1 Sell,1 Buy";

extern int Tipo = 0;

extern bool CurOrders=true;

extern int lblSize=1;

extern bool HistOrders=true;

extern bool ShowProfits=true;

extern int ShiftProfits=0;

extern bool lShowTargets=true;

extern string _donate1="? ???? :-) WebMoney";

extern string _donate2="R865705290089";

"
Archivos adjuntos:
editor.jpg  143 kb
 

...

"extern string _donate1="на пиво :-)"...gracias...funcionó

 

base de cierre MACD

Hola.. puedes ayudarme a modificar esta salida por MACD cross 0. como siempre este ea se cierra si tp=x o sl=x punto.

he intentado pero todavía a difícil 4 mí..

muchas gracias... 1428maplus.mq4

Archivos adjuntos:
1428maplus.mq4  30 kb
 
mladen:
Añade algo así en tu EA al principio del procedimiento start() :
if (TimeDayOfWeek(TimeCurrent())==5 && TimeCurrent()>=StrToTime("22:59")) { CloseAll(); return(0); }

Añade esto en el código :

[PHP]void CloseAll()

(Todo el código)

Eso solucionará tus puntos 2 y 3 (órdenes abiertas al viernes)

El primer punto es bastante complicado de codificar - probablemente tendrá que redefinir esa regla

¡Muchas gracias! Para la última parte, ¿un código de escucha de eventos de algún tipo haría el truco (sólo escribiendo otra sugerencia que leí)? Si no me equivoco, ¿para aumentar el take profit de una operación cuando la otra se cierra se necesitaría subpartes de codificación para hacerlo?

Cuando dos operaciones se abren con este EA sin embargo significa que en algún momento uno golpeará la pérdida de la parada (a menos que se extienden en la misma zona hasta que el cierre de todas las operaciones en un momento determinado poco), si dos operaciones están abiertas y uno se cierra con un beneficio negativo, el otro comercio abierto podría responder a la ganancia negativa mediante el aumento de la toma de beneficios? Por cierto, todo esto está sucediendo en un símbolo hasta ahora.

Para decirlo de forma más sencilla, ¿sería posible aumentar la toma de beneficios de una operación una vez que la otra se haya cerrado, independientemente de cuál sea su beneficio? Esto es porque la forma en que pretendo que el EA sea es que si dos operaciones están abiertas y una se cierra será negativa de todos modos.

¡Gracias de nuevo!

 
Hay un par de problemas en eso :

- la búsqueda en la lista de órdenes cerradas puede llevar a una identificación errónea de la orden "relacionada"

- debido a que el EA necesitaría saber qué "otra" orden debe monitorear. Así que cada una de las órdenes necesitaría saber de alguna manera el ID de la otra orden (ticket). Pero eso, debido a la falta de un campo en el que nosotros (los usuarios) podemos escribir algo que queremos usar como información, no es posible. El campo de comentarios sólo puede escribirse en el momento de la creación de la orden: no hay forma de modificarlo una vez que la orden se ha abierto (sólo el corredor puede hacerlo), por lo que no tenemos ningún medio de parchear la información en la propia orden.

- si no podemos guardar alguna información en la propia orden, podemos olvidarnos de algún tipo de modificaciones. Por ejemplo: como se puede saber desde los campos disponibles de una orden que ya ha sido modificada (el take profit). No estoy hablando de algunas "variables globales" (que son inútiles en caso de que se utilice el terminal incluso en 2 carpetas diferentes y mucho menos en 2 PC diferentes) ni de guardar algunos estados en el EA (¿qué pasa si deja de funcionar - un caso que ocurre mucho más a menudo de lo que quieren admitir).

Así que, por lo que veo con las restricciones de arriba, ese tipo de "comportamiento" condicional no es posible hacer sin una posibilidad real de un error en algún lugar a lo largo del proceso

madmax3:
Muchas gracias. Para la última parte ¿serviría un código de escucha de eventos de algún tipo (sólo tecleando otra sugerencia que leí)? Si no me equivoco, ¿para aumentar el take profit de una operación cuando la otra se cierra se necesitaría subpartes de codificación para hacerlo?

Sin embargo, cuando se abren dos operaciones con este EA, significa que en algún momento una de ellas alcanzará el stop loss (a menos que oscilen en la misma zona hasta que se cierren todas las operaciones en un momento determinado), si se abren dos operaciones y una se cierra con un beneficio negativo, la otra operación abierta podría responder al beneficio negativo aumentando la toma de beneficios... Por cierto, todo esto está sucediendo en un símbolo hasta ahora.

Para decirlo de forma más sencilla, ¿sería posible aumentar la toma de beneficios de una operación una vez que la otra se haya cerrado independientemente de cuál sea su beneficio? Esto es porque la forma en que pretendo que sea el EA es que si dos operaciones están abiertas y una se cierra será negativa de todos modos.

¡Gracias de nuevo!
 

Parece una tarea bastante difícil, ¿qué tal si se hace así, cuando se abre una operación (puede ser una o dos operaciones) se altera la toma de beneficios una vez que el precio alcanza un determinado nivel?

 

...

¿Por qué no usar un trailing stop entonces?

Quiero decir que haría casi el 100% (casi) de lo que su idea original es y es mucho, mucho más fácil de código

madmax3:
Parece una tarea bastante difícil, ¿qué tal si lo hacemos así, cuando una operación está abierta (puede ser una o dos operaciones) la toma de beneficios se altera una vez que el precio alcanza un determinado nivel?
Razón de la queja: