Detalles de Stop Loss y Take Profit escritos antes de las condiciones de compra y venta
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупкуdouble Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // лучшее предложение на продажуdouble SL = NormalizeDouble(StopLoss,_Digits);
double TP = NormalizeDouble(TakeProfit,_Digits);
bool Buy_Condition_1=...;
bool Buy_Condition_2=...;
bool Buy_Condition_3=...;
а сам
bool PositionModify(conststring_Symbol,constdouble SL,constdouble TP)
{
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
Alert("SL!!!");
return; // закрыл
}
MqlTradeRequest request={0};
MqlTradeResult result ={0};
mrequest.action=TRADE_ACTION_SLTP;
mrequest.symbol=_Symbol;
mrequest.magic =EA_Magic;
mrequest.sl =StopLoss;
mrequest.tp =TakeProfit;
OrderSend(mrequest,mresult);
if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Стопка прошла#:",mresult.order,"!!");
}
else
{
Alert("Стопка не прошла - код ошибки:",GetLastError());
return(false);
}
return(true);
}
//----------------------------------------------------------------- if(Buy_Close_1 || Buy_Close_2)
после отсылки ордера на покупку.
Пока при компиляции борюсь с "лишними" скобками фигурными.
Вопрос дубль 2 - правильно ли я расположил модификацию позиции?
И вообще, "классический" ли он имеет код (при условии, что он верный)?
El caso es que si pongo corchetes en los lugares, en la compilación genera - 'PositionModify' - lafunción sólo puede ser declarada en el ámbito global
y esta vez lo creo, es decir, el "modificador de posición" en sí debe ser colocado antes de int OnInit() y las condiciones (si) después de la sección de compra?
Corregido. Se compila sin errores. No lo he probado en el probador. Su código no era legible. Acostúmbrese a la disposición del código como en mi versión corregida.
Gracias (aunque no entiendo muy bien qué es lo que ha cambiado, aparte del diseño).
¿Qué significa "SMB" en la línea 2 y dónde se define por valores? ¿No se puede escribir _Symbol?
¿Puede usted aconsejar la mejor manera de implementar lo siguiente: Experto lanza, cuando se inicializa dibuja (en el área del gráfico? en algún otro lugar?), digamos, TextBox y Button. Experto maneja ticks. Si un usuario introduce algún valor en el TextBox y presiona el Botón, el manejador del tick ve este nuevo dato.
En otras palabras, ¿cuál es la forma correcta (más sencilla, mejor) de organizar el intercambio interactivo de datos del usuario con el Asesor Experto a través de los elementos de la GUI de Windows? CChartObjectEdit y CChartObjectButton es, perdón, una especie de "pornografía".
Gracias. ¡Perdonen si la pregunta es simple y por favor, hurguen donde está la respuesta!
Si no quieres hacerlo, tendrás que leer las variables correctamente.
Стоплос и тейкпрофит в пункти.*Понт = 0.002-ето тейк,ну надо и к добавит.
PositionModify(Symbol(),NormalizeDouble(Bid - SL*_Point,4),TP*_Point);
PositionModify(Symbol(),NormalizeDouble((Bid - SL*_Point),4),NormalizeDouble((Bid + TP*_Point),4));
¿Dónde está escrita la modificación de la posición?
Detalles de Stop Loss y Take Profit escritos antes de las condiciones de compra y venta
Hay un error en el código:
Gracias. Se ha ido.
¿Y el posicionamiento?
El caso es que si pongo corchetes en los lugares, en la compilación genera - 'PositionModify' - la función sólo puede ser declarada en el ámbito global
y esta vez lo creo, es decir, el "modificador de posición" en sí debe ser colocado antes de int OnInit() y las condiciones (si) después de la sección de compra?
Dame el código, no entiendo lo que quieres decir.
PD: Debería describir la función PositionModify() a nivel global, es decir, a nivel de las funciones: OnInit(), OnTick(), OnDeinit().
Corregido. Se compila sin errores. No lo he probado en el probador. Su código no era legible. Acostúmbrese a la disposición del código como en mi versión corregida.
Gracias (aunque no entiendo muy bien qué es lo que ha cambiado, aparte del diseño).
¿Qué significa "SMB" en la línea 2 y dónde se define por valores? ¿No se puede escribir _Symbol?
mrequest.action = TRADE_ACTION_SLTP; mrequest.symbol = smb; mrequest.magic = EA_Magic; mrequest.sl = SL; mrequest.tp = TP;Hola, ¿podríais decirme si las órdenes de las señales se ejecutan si tengo el ordenador del terminal apagado?
Buenas tardes,
¿Puede usted aconsejar la mejor manera de implementar lo siguiente: Experto lanza, cuando se inicializa dibuja (en el área del gráfico? en algún otro lugar?), digamos, TextBox y Button. Experto maneja ticks. Si un usuario introduce algún valor en el TextBox y presiona el Botón, el manejador del tick ve este nuevo dato.
En otras palabras, ¿cuál es la forma correcta (más sencilla, mejor) de organizar el intercambio interactivo de datos del usuario con el Asesor Experto a través de los elementos de la GUI de Windows? CChartObjectEdit y CChartObjectButton es, perdón, una especie de "pornografía".
Gracias. ¡Perdonen si la pregunta es simple y por favor, hurguen donde está la respuesta!
Genial.
1. el código ahora se compila. Primer cambio.
Lástima que compilación y operatividad no sean lo mismo)
¿Por qué en el probador el código establece stoplosses y beneficios pero no en el gráfico?
Empiezo a flipar sobre la marcha)))
¿Por qué en el probador el código establece stoplosses y beneficios pero no en el gráfico?
Empezando a flipar por el camino )))).
Lester:Zdes poner una plantilla, en el interior hay una modificación, y mostró cómo polzuvatsya.
https://www.mql5.com/ru/forum/6343/page73
Si no quieres hacerlo, tendrás que leer las variables correctamente.
Hola, ¿podríais decirme si las órdenes de las señales se ejecutan si tengo el ordenador del terminal apagado?