[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 457
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
normalice sus _lotes
Gracias. Ayudó.
Hola, tengo una pregunta sobre la exportación de datos a Excel. Necesito que el indicador (o el script) exporte automáticamente los valores actuales de "Saldo", "Fondos", etc. a Excel al principio de cada día. ¿Puede decirme cómo ponerlo en práctica? O, al menos, dónde leer sobre ello. La búsqueda no produjo ningún resultado, por lo que pregunto aquí. Gracias.
Puedes guardar un archivo csv con un experto y Excel lo procesará con bastante éxito.
¿Puede decirme cómo hacerlo? ¿Y dónde puedo encontrar más información al respecto? Gracias.
Por favor, aconseja cómo hacer que un indicador en el EA no se dibuje en un gráfico?
Es decir, las líneas del indicador no se dibujan en el gráfico. El indicador se llama así:
https://docs.mql4.com/ru/files
Por favor, aconseja cómo hacer que un indicador en el EA no se dibuje en un gráfico?
Es decir, las líneas del indicador no se dibujan en el gráfico. El indicador se llama así:
Durante la prueba de EA obtengo el error 130 - paradas erróneas. En la función NewOrder se deberían pasar las variables externas TakeProfit y StopLoss, y me parece que he hecho todo lo posible para conseguirlo, pero como muestra la impresión se pasan ceros. Entiendo que la razón de este error se encuentra aquí pero no he podido encontrarla todavía. Necesito tu ayuda.
extern int TakeProfit=100;
extern int StopLoss=100;
....................................
if(KVADRAT==1)
{
double Lote=GetLot(MaxRisk);
Print("Lote=",Lote);
if(Lot==0)
{
Print("no hay fondos suficientes");
return(0);
}
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss);
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss);
KVADRAT=0;
}
.....................................
//+---------Функция расчета лота---------------------------------------+
double GetLot(int Risk)
{
double Free=AccountFreeMargin();
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lote=MathFloor(Libre*Riesgo/100/Un_Lote/Paso)*Paso;
if(Lote<Lote_Mínimo)Lote=Lote_Mínimo;
if(Lote>Lote_máximo)Lote=Lote_máximo;
if(Lote*Uno_Lote>Libre)return(0.0);
retorno(Lote);
}
//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss)
{
double TP=0;//tomarBeneficio
double SL=0;// stopLoss
double PR=0;// precio
while(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(Cmd==OP_BUY)
{
PR=NormalizarDoble(Pregunta,Dígitos);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
if(Cmd==OP_SELL)
{
PR=NormalizarDoble(Oferta,Dígitos);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
Print("TakeProfit=",TakeProfit," StopLoss=",StopLoss," StopLevel=",MarketInfo(Symbol(),MODE_STOPLEVEL));
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("error de apertura de orden:",GetLastError()); Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP);
return(tic);
}
Haz algo de magia con esta función.
* se ha ido a hacer magia *