Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 293

 
oDin48:

Chicos, por favor, aconsejar un buen DC para el comercio de EA?


Compartid la información, por favor, porque de qué sirve escribir un búho sin tener DCs normales con los que trabajar.
 

https://www.mql5.com/ru/market/product/1144

Tengo este EA a la venta en el Market por 1800 usd, lo he probado en EURUSD y gana dinero perfectamente, en otros pares opera con ceros, creo que se ha ajustado al historial de entradas, ¿puede ser?

 
oDin48:

Comparte la información, por favor, porque de qué sirve escribir un búho sin tener DCs normales con los que trabajar.
Te sugiero que lo busques en Google. ¡Todo está oficialmente bien!
 
SpikeOne:

https://www.mql5.com/ru/market/product/1144

Tengo este EA a la venta en el Market por 1800 USD, lo he probado en EURUSD y gana dinero perfectamente, en los otros pares opera con ceros, creo que se ha ajustado al historial de entradas, ¿puede ser?

¡Creo que tiene que ver con el Historial de Entradas! ¡Es para MT5! Puedes preguntar allí.
 
TarasBY:

... ¿y según qué reglas lingüísticas lo has esculpido? Por ejemplo:

:)


Ese es el problema, eso es lo que hay que "formular" correctamente, siempre he tenido un buen sentido de la lógica, pero hace un mes que no puedo hacerlo ((((((((
 
niformalka:

Ese es el problema, eso es lo que hay que "formular" correctamente, siempre me ha ido bien la lógica, pero hace un mes que no puedo hacerlo ((((((((

La ayuda está al alcance de la mano.

Documentación Tutorial TA Código base Artículos

 

"if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {"

En mi opinión, a este ejemplo le faltan paréntesis: 3 de apertura y 2 de cierre. Aconsejo al autor del búho que compruebe si todos los paréntesis coinciden.

Yo lo escribiría así:

if ((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100)) {

 
oDin48:

"if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {"

En mi opinión, a este ejemplo le faltan paréntesis: 3 de apertura y 2 de cierre. Aconsejo al autor del búho que compruebe si todos los paréntesis coinciden.

Yo lo escribiría así:

if ((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100)) {


Lo he probado, pero sigue apareciendo un error al final de la lista
 
oDin48:

En este ejemplo creo que faltan 3 paréntesis de apertura y 2 de cierre. Aconsejo al autor del búho que compruebe si todos los paréntesis coinciden.

También se puede recomendar el Notepad++, en el mismo Notepad se elige la sintaxis C++ para el código mql4, en el menú de ajustes se debe poner la tabulación en cp3 (por defecto parece ser 4). A simple vista, hay dos usos:

1. resaltar las variables con nombres similares en todo el código

2. Resaltar los paréntesis emparejados dondequiera que estén en el código (incluyendo el resaltado vertical si el código está alineado con el tabulador). Cualquier paréntesis: redondo, rizado o cuadrado.

Y por último, pero no por ello menos importante, un práctico sistema de búsqueda y sustitución (incluso en las selecciones), etiquetado (que "marca") y, en general, un entorno de desarrollo sencillo y sin complicaciones. Si lo combinas con el meta-editor, obtienes no un estudio, por supuesto, sino un tándem moderadamente potente.

 

¡Buenos días a todos!

Tengo un script que hace pedidos en CU.

Por favor, ayúdenme a cambiarlo para que se tenga en cuenta la dispersión.

Por ejemplo un par GBPCAD spread 10 - más órdenes son de Venta - por lo que el TP debe estar en 1.7010 y el stop loss en 1.7000 (1.6999 es lo ideal))

Gracias


aconsejar como poner el alerón

//+------------------------------------------------------------------+
//|                                                    ZeroLevel.mq4 |
//|                                                          VadimVP |
//|                                                poluyan@fxmail.ru |
/*
 Скрипт поставит TakeProfit и StopLoss у открытых ордеров на текущем
 инструменте на уровень безубыточности.
 Расчет ведется только для ордеров текущего инструмента.
 Учитывает своп и комиссии. Работает при любых Digits.
 Точность +/- размер спреда.
 Об успешности изменений сообщит в диалоговом окне.
 Проверьте, включена ли опция "разрешить советнику торговать". 
*/
//| 
//+------------------------------------------------------------------+
#property copyright "VadimVP"
#property link      "poluyan@fxmail.ru"
 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int kol=0;
   int kolOK=0;
   int i=0;
   double lots=0;
   double sum=0;
   double sum1=0;
   for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ; 
       kol=kol+1;
      }
      if (OrderType()==OP_SELL)
      {
       lots=lots-OrderLots();
       sum=sum-OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ;
       kol=kol+1;
      }
   }
   double zeroprice=0;
   if (lots!=0) zeroprice=sum/lots;
   zeroprice = (MathRound(zeroprice*MathPow(10,Digits)))/MathPow(10,Digits);

   
//-----
 Alert ("!!!  Пожалуйста дождитель окончания работы скрипта!");
 int res = 0;
 for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
        
         if (zeroprice>Ask) 
         { if (OrderType()==OP_BUY) {if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;}    }
           if (OrderType()==OP_SELL){if (zeroprice == OrderStopLoss()) res=res+1; else { if (  OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;}     } }
         if (zeroprice<Bid) 
         { if (OrderType()==OP_BUY) {if (zeroprice == OrderStopLoss()) res=res+1; else { if (  OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;} }
           if (OrderType()==OP_SELL){if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;}    } } 
          
   }
 Alert ("***************************************************");
 Alert ("Цена безубыточности "+DoubleToStr(zeroprice,Digits));
 if (kol==res) Alert ("Все ордера успешно изменены! Точка безубыточности выставлена. ОК!"); else Alert ("!!! Внимание!!! Не удалось изменить - " +(kol-res)+ " ордера из "+kol+" имеющихся");
 Alert ("************ информация от ZeroLevel script ************");
 
//------

   return(0);
  }