[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 149
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Por favor, aconseja a un novato, AccountBalance() - muestra la cantidad de fondos en el balance, pero necesito calcular mi balance calculado (calc_balance),
Este balance es simple, pero aún no puedo escribirlo, hay una cantidad total de órdenes abiertas y pendientes (Orderstotal), por ejemplo 3 órdenes, el riesgo máximo por una posición abierta es del 2%,
para abrir otra operación necesito calcular el riesgo máximo (2%) del saldo calculado, es decir, la lógica de la fórmula sería aproximadamente: calc_balance=AccountBalance()-2%-2%-2%,
Es decir, una sustracción consistente - pero cómo escribirlo en código aún no ha tenido éxito, espero su ayuda.
Gracias de antemano!
¿Pueden decirme cómo se separan los fondos (AccountEquity() ) y las garantías (AccountMargin() ) para las posiciones de compra y de venta?
Señores, puede alguien aconsejar un indicador o asesor experto, que exponga los niveles de soporte y resistencia en D1, sin rezagos preferiblemente)))
Buenas tardes a todos, tengo un problema y no consigo saber qué es.
Hay dos funciones dadas. Si llamo al 1, no funciona nada. En el segundo caso, todo funciona. Por favor, indique cuál es el error.
Gracias de antemano.
int OrderBuy(double pLots, string pComment, int pMagic, int pDatetime, color pColor) { int ticket = 0; int err = 0; int c = 0; int NumberOfTries = 100; for (c = 0; c < NumberOfTries; c++) { RefreshRates(); ticket = OrderSend(Symbol(), OP_BUY, pLots, Ask, 0, Ask-0.0005, Ask+0.0005, pComment, pMagic, pDatetime, pColor); err = GetLastError(); if (err == 0/* NO_ERROR */) break; if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break; Sleep(5000); } return(ticket); } int OrderSell(double pLots, string pComment, int pMagic, int pDatetime, color pColor) { int ticket = 0; int err = 0; int c = 0; int NumberOfTries = 100; for (c = 0; c < NumberOfTries; c++) { RefreshRates(); ticket = OrderSend(Symbol(), OP_SELL, pLots, Bid, 0, Bid+0.0005, Bid-0.0005, pComment, pMagic, pDatetime, pColor); err = GetLastError(); if (err == 0/* NO_ERROR */) break; if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break; Sleep(5000); } return(ticket); } //вызовы функций ticket = OrderBuy(lot, "---"+count+" ---", MagicNumber, 0, HotPink); Print(ticket+":тикет");//здесь выдает -1 if (ticket < 0) { Print("Error: ", GetLastError());//здесь выдает "0"; return (0); } ticket = OrderSell(lot, "---"+count+" ---", MagicNumber, 0, HotPink); Print(ticket+":тикет"); if (ticket < 0) { Print("Error: ", GetLastError()); return (0); }
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();
Buenas tardes a todos, tengo un problema y no consigo saber qué es.
Hay dos funciones dadas. Si llamo al 1, no funciona nada. En el segundo caso, todo funciona. Por favor, indique cuál es el error.
Gracias de antemano.
La función GetLastError() que en OrderSell y OrderBuy en el bucle, restablece el valor del error (ver ayuda en GetLastError ATENCIÓN), por lo tanto
Intenta imprimirlo directamente en el bucle, entonces verás donde la orden no se abre debido a un error.
Hice un simple indicador que "voltea" el instrumento. A veces, para la percepción es más fácil ver un par al revés, y el ojo se "lava" al mirar la misma imagen. Nunca he leído de un archivo (ni siquiera he intentado trabajar con un archivo), puedo mostrar un gráfico completo, ¿alguien tiene alguna idea?
Todavía no lo he encontrado ni buscando ni entre las funciones de Kim.
¿Cómo calcular correctamente el margen de las órdenes abiertas por separado?
Yo lo hacía así:
Tengo un valor diferente al que muestra el terminal
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();
No puedes simplemente restarlo. Necesito un cálculo separado para cada dirección.