[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 38

 
nuan:

La carta significa que cierra la orden en el mismo segundo, no en 30 minutos.


He puesto el código como en su ejemplo


El robot no se cierra por otros motivos, es decir, no se cierra en el stop o en el beneficio.


1 2011.07.29 00:00 comprar 1 0,01 1,4328 1,3328 1,5328 0,00 1000,00
2 2011.07.29 00:01 cierre 1 0,01 1,4327 1,3328 1,5328 -0,10 999,90
3 2011.07.29 00:01 comprar 2 0,01 1,4329 1,3329 1,5329 0,00 999,90
4 2011.07.29 00:01 cierre 2 0,01 1,4326 1,3329 1,5329 -0,30 999,60
5 2011.07.29 00:01 comprar 3 0,01 1,4328 1,3328 1,5328 0,00 999,60
6 2011.07.29 00:03 cierre 3 0,01 1,4327 1,3328 1,5328 -0,10 999,50
7 2011.07.29 00:03 comprar 4 0,01 1,4329 1,3329 1,5329 0,00 999,50
8 2011.07.29 00:03 cierre 4 0,01 1,4329 1,3329 1,5329 0,00 999,50


Póngalo todo al final de la función start(). Sus operaciones deben ir por delante.

datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
 
nuan:
Reemplazar en start() con esta opción:
 datetime CloseTime;
//=====================
 int start(){

   if(TimeCurrent()-CloseTime > 30*60){CloseAllPos();CloseTime=TimeCurrent();}//Можно поставить в любом месте функции старт.
  return(0);
 }
//====================
 
forexnew:

Lo entiendo.

¿Y si se considera la posibilidad de abrir una cuenta con 0 dólares como inicio, y la primera recarga como complemento? ¿Es posible determinar programáticamente todas las recargas (incluida la primera) que se han realizado en la cuenta?


:-Р

Estás remando en la dirección equivocada... :-)))

Existe una función

double AccountBalance( ) 

con su ayuda se define el estado del saldo de su cuenta por operaciones cerradas en algún momento del tiempo.

Entonces -supongamos que ha entrado en el mercado- déficit flotante en su cuenta con posiciones abiertas, y entonces deposita fondos en su cuenta... Aquí habría que determinar la cantidad de split (si lo hay) para corregir el volumen (al alza) de las posiciones abiertas para mantener la "tolerancia" inicial al drawdown/profit, digamos, en puntos porcentuales de capital, a partir de la cual se calculó el volumen de las posiciones de mercado "iniciales" (antes del split). ¿Cuál es la solución a este problema?

 
CloseTime 
Нужно задавать этот параметр? если да то как?
 
nuan:


No lo hagas. Es una variable temporal "intermedia", siempre igual a la última hora de cierre.

El tiempo de funcionamiento se ajusta en segundos. En tu caso es 30*60.
Puedes sustituir 30 por alguna variable, por ejemplo, exstern int closetime = 30.
Entonces la hora se verá así: closetime*60.

 
charter:


No lo hagas. Es una variable temporal "intermedia", siempre igual a la última hora de cierre.

El tiempo de funcionamiento se ajusta en segundos. En su caso es 30*60.
Puedes sustituir 30 por alguna variable, por ejemplo, exstern int closetime = 30.
Entonces la hora se verá así: closetime*60.

Acabo de probar lo mismo, está al final del cuerpo start.... No entiendo por qué es así. ¿Tal vez haya otra opción?
 
Roman.:


:-Р

Estás remando en la dirección equivocada... :-)))

Existe una función

con su ayuda se determina el estado del balance de su cuenta de trading para las operaciones cerradas en algún momento.

Entonces -supongamos que ha entrado en el mercado- déficit flotante en su cuenta con posiciones abiertas, y entonces deposita fondos en su cuenta... Aquí habría que determinar la cantidad de split (si lo hay) para corregir el volumen (al alza) de las posiciones abiertas para mantener la "tolerancia" inicial al drawdown/profit, digamos, en puntos porcentuales de capital, a partir de la cual se calculó el volumen de las posiciones de mercado "iniciales" (antes del split). ¿Cuál es la solución a este problema?


Si inicialmente se determinó la relación entre el StartBalance (saldo inicial) y el StarLots (lote inicial) según los riesgos especificados, entonces se debe determinar el valor de la equidad:

if(AccountEquity()<StartBalance) Top-up = (AccountBalance()+(StartBalance-AccountEquity()))*New Lot/StarLots

Esto excluye AccountCredit(). Si le he entendido bien, claro.

 
nuan:
Acabo de probar lo mismo, es al final del cuerpo start.... No entiendo por qué es así. ¿Tal vez haya otra opción?
Busca un error en otra cosa.
Ambas opciones deberían funcionar.
 
Muchas gracias.
 

Hola a todos. Tengo una pregunta para usted. Necesito encontrar el máximo y el mínimo más cercanos. Pero que deben estar dentro de + - 10 puntos de Open[0];

Ahora lo tengo así:

for (int i=1;i<100;i++)

if (High[i+1]<High[i] && High[i]>High[i-1] break;

encuentra el máximo más cercano,

Si añado la comparación High[i]>(Open[0]+0.0010) y High[i]<(Open[0]+0.0020) esto es lo que parece

if (High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0.0010) && High[i]<(Open[0]+0.0020) break;

El programa busca el máximo equivocado. ¿Cuál es el problema?

Todavía no he probado el mínimo.

Razón de la queja: