[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 414
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
Gracias. Encontré algo más aquí, tal vez alguien lo necesite. Voy a terminar el grial:)
Если массив double а нужен int? Я правильно понял?
No. Estoy escribiendo el enlace de MT4 a otras aplicaciones a través de sockets. La función Socket devuelve un array de int:
Importo esta dll en EA. Sin embargo, para llamar a esta función, es necesario declararla en el Asesor Experto:
Lo más probable es que la declaración anterior no sea correcta: una opción dll devuelve un array, mientras que una función declarada en un Asesor Experto devolverá un único int.
¿Cómo declararlo en un Asesor Experto para que devuelva una matriz y no un solo número?
¿Quién sabe?
¿Cómo especificar una variable doble en el formato de precisión especificado sin redondear el número, por ejemplo especificar Bid=1.3988 como Bid=1.398 ?
Кто знает?
Как указать переменную double в указаном формате точности без округление числа, к примеру Bid=1.3988 указать как Bid=1.398 ???
¿así?
Todo resuelto, la respuesta está aquí: https://forum.mql4.com/ru/25945
Por favor, ayuda...
\fin_del_programa' - paréntesis izquierdo desequilibrado
extern double Lots = 0.1; extern int TrailingStop=0; extern string symbol="GBPUSD"; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double ma_close,ma_close_pr,ma_open,ma_open_pr; double spread,sl_buy,sl_sell,high,high_n,low,low_n; int cnt, ticket, total; if(Bars<55) { Print("bars less than 55"); return(0); } // to simplify the coding and speed up access // data are put into internal variables ma_close=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1); ma_close_pr=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,2); ma_open=iMA(NULL,0,5,0,MODE_EMA,PRICE_OPEN,1); ma_open_pr=iMA(NULL,0,5,0,MODE_EMA,PRICE_OPEN,2); spread=MarketInfo(symbol,MODE_SPREAD); sl_buy=iLow(NULL,0,1)-spread*Point; sl_sell=iHigh(NULL,0,1)+spread*Point; high=iHigh(NULL,0,1); high_n=iHigh(NULL,0,0); low=iLow(NULL,0,1); low_n=iLow(NULL,0,0); //---- total=OrdersTotal(); if(total<1) { // no opened orders identified if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } // check for long position (BUY) possibility if(ma_close>ma_open && ma_close_pr<ma_open_pr && high_n>high) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl_buy,0,"FXJEDDI_MTF:Buy",16384,0,Lime); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } // check for short position (SELL) possibility if(ma_close<ma_open && ma_close_pr>ma_open_pr && low_n<low) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl_sell,0,"FXJEDDI_MTF:Sell",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } for(int i = 0; i < OrdersTotal(); i++) { // выбор одера if(OrderSelect(i, SELECT_BY_POS) == false) continue; // not current symbol if(OrderSymbol() != Symbol()) continue; } if(OrderType() == OP_SELL) { //при профите >20 pips добавится или докупится ... if(OrderProfit()>20) OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl_sell,0,"FXJEDDI:Sell",16384,0,Red); } if(OrderType() == OP_BUY) { //при профите >20 pips добавится или докупится ... if(OrderProfit()>20) OrderSend( (Symbol(),OP_BUY,Lots,Ask,3,sl_buy,0,"FXJEDDI:Buy",16384,0,Lime); } return(0); }¿Qué pasa?Parte 2.
Necron скобку где то не закрыл, ищи...
¿Has puesto los complementos en el código correcto?