El probador funciona correctamente. El error está en la lógica del programa: dos símbolos son como dos vidas de personas diferentes (aquí "persona" es análogo a "símbolo"). Y la segunda persona no tiene por qué despertarse al mismo tiempo que la primera ("despertarse" es análogo a " aparecer un nuevo bar").
Así que hay que esperar a que aparezca una nueva barra Y en el primer símbolo Y en el segundo.
Hola. Cuenta de compensación, quiero contar cuántas órdenes limitadas de la misma dirección se han convertido en posiciones.
La función no calcula correctamente, ¿por qué?
int CurrentPos_sell_nettin()
{
string symb=_Symbol;
int total =0; // Всего сделок в списке выбранной историиint count =0; // Счетчик сделок по символу позиции//--- Если история позиции полученаfor(int i=0; i<PositionsTotal(); i++)
{
ulong pt=PositionGetTicket(i);
long ID=PositionGetInteger(POSITION_IDENTIFIER);
if(PositionGetString(POSITION_SYMBOL)==symb && HistorySelect(PositionGetInteger(POSITION_TIME),TimeCurrent()+60))
{
//--- Получим количество сделок в полученном списке
total=HistoryDealsTotal();
//--- Пройдем по всем сделкам в полученном спискеfor(int i=0; i<total; i++)
{
ulong dt = HistoryDealGetTicket(i);
long did = HistoryDealGetInteger(dt, DEAL_POSITION_ID);
ENUM_DEAL_ENTRY in_out=HistoryDealGetInteger(dt,DEAL_ENTRY);
if(did==pt && in_out==DEAL_ENTRY_IN)
{
if(m_position.PositionType()==POSITION_TYPE_SELL)
{
count++;
}
}
}
}
}
//---return(count);
}
¿Es así como se colocan las órdenes en el probador de MT5, en modo visual? ¿Y cómo se procesan los acontecimientos? OnChartEvent() no funciona, ¿verdad?
Ahora describe con palabras lo que has descrito gráficamente. Usa alto, bajo, abierto, cerrado.
Tamaño de la vela = alto[i] - bajo[i]
Sombra superior = alto[i] - abierto[i]
Cuerpo de la vela = abrir[i] - cerrar[i]
Sombra inferior = close[i] - low[i]
La relación entre el cuerpo de la vela y su tamaño - (high[i] - low[i]) / (open[i] - close[i])
El tamaño de la sombra corta no debe superar algún umbral - ( close[i] - low[i]) <= close[i]
Orientación de la vela - alta[i] > apertura[i] > cierre[i] > baja[i]
Apuesto con el ratón.
¿Es así como se colocan las órdenes en el probador de MT5, en el modo visual? ¿Cómo se gestionan los eventos? OnChartEvent() no funciona, ¿verdad?
El probador funciona correctamente. El error está en la lógica del programa: dos símbolos son como dos vidas de personas diferentes (aquí "persona" es análogo a "símbolo"). Y la segunda persona no tiene por qué despertarse al mismo tiempo que la primera ("despertarse" es análogo a " aparecer un nuevo bar").
Así que hay que esperar a que aparezca una nueva barra Y en el primer símbolo Y en el segundo.
Añadido:manejador del evento "nueva barra" del artículo
Esta pregunta: ¿es importante el orden de las condiciones para encontrar una combinación de velas?
Ejemplo:
Hola. Cuenta de compensación, quiero contar cuántas órdenes limitadas de la misma dirección se han convertido en posiciones.
La función no calcula correctamente, ¿por qué?
Hola. Cuenta de compensación, quiero contar cuántas órdenes limitadas de la misma dirección se han convertido en posiciones.
La función no cuenta correctamente, ¿por qué?
Comience con HistorySelectByPosition. Entonces, sólo obtendrá las operaciones relacionadas con esa posición.
Esta pregunta: ¿es importante el orden de las condiciones para encontrar una combinación de velas?
Ejemplo:
Mira el ejemplo: hay treinta patrones diferentes.
Artyom, voy a repetir la pregunta, por favor contesta:
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Preguntas de los principiantes MQL5 MT5 MetaTrader 5
Alexey Kozitsyn, 2018.06.03 15:39
¿Es así como se colocan las órdenes en el probador de MT5, en modo visual? ¿Y cómo se procesan los acontecimientos? OnChartEvent() no funciona, ¿verdad?
Comience con HistorySelectByPosition. Entonces, sólo obtendrá las operaciones relacionadas con esa posición.
Gracias.
¿Qué pasa ahora?