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

 
VOLDEMAR:

No se puede conseguir el diseño juntos

Sigue maldiciendo a

En el día tengo que conseguir el índice


ENUM_DAY_OF_WEEK de tipo int.
 
evillive:
ENUM_DAY_OF_WEEK es de tipo int.
He probado tanto int como string y double
 
evillive:
No puedes hacerlo manualmente, el terminal sólo dibuja estos iconos si operas con un programa. También puede copiar el historial de operaciones manual en el gráfico y todas las operaciones se marcarán.

Y si se modifica el color de cada orden abierta de esta manera, ¿se reflejará la operación en el gráfico?

int i2;  

    for (i2=OrdersTotal()-1; i2>=0; i--){

    if (OrderSelect(i2, SELECT_BY_POS, MODE_TRADES)){

      if (OrderSymbol()==Symbol()){  

       if (OrderType()==OP_SELL){

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Red);

       }

       if (OrderType()==OP_BUY){   

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Green);

       }

      }

     }

    }

   }

 

Decidido a mostrar el saldo como un indicador al ejecutar la visualización

Balance=AccountBalance();
double price=iCustom(NULL,0,"AccountBalance",Balance,0,1);

del indicador:

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1  Blue       
//--- input parameters
//--- buffers
extern double       Balance=3;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(1);
   SetIndexBuffer(0,ExtMapBuffer1);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1;
   limit1=Bars-counted_bars-1;

   for(i=limit1;i>=0;i--)ExtMapBuffer1[i]=Balance;
   
   return(0);
  }
//+------------------------------------------------------------------+

Y se llama demasiado a menudo) Hace que la pantalla se vuelva blanca. La pregunta es retórica, ¿qué pasa?

 
Forexman77:

Decidido a mostrar el saldo como un indicador al ejecutar la visualización

del indicador:

Y se llama demasiado a menudo) Hace que la pantalla se vuelva blanca. La pregunta es retórica, ¿qué es lo que está mal?

bool balans;

cadena balans_S;

///////////////////////////////////////////////////////////////////////////////////////////////////
balans_S=DoubleToStr(AccountBalance(),2)+""+AccountCurrency();
balans=ObjectCreate("Balance", OBJ_LABEL, 0, 0, 0);
balans=ObjectSetText("Balance",balans_S, 14, "Arial", Orange);
balans=ObjectSet("Balance", OBJPROP_CORNER, 1);
balans=ObjectSet("Balance", OBJPROP_XDISTANCE, 20);
balans=ObjectSet("Balance", OBJPROP_YDISTANCE, 20);

///////////////////////////////////////////////////////////////////////////////////////////////////

Inserta este código en tu Asesor Experto y la felicidad puede llegar a ti

 
woin2110:

bool balans;

cadena balans_S;

///////////////////////////////////////////////////////////////////////////////////////////////////
balans_S=DoubleToStr(AccountBalance(),2)+""+AccountCurrency();
balans=ObjectCreate("Balance", OBJ_LABEL, 0, 0, 0);
balans=ObjectSetText("Balance",balans_S, 14, "Arial", Orange);
balans=ObjectSet("Balance", OBJPROP_CORNER, 1);
balans=ObjectSet("Balance", OBJPROP_XDISTANCE, 20);
balans=ObjectSet("Balance", OBJPROP_YDISTANCE, 20);

///////////////////////////////////////////////////////////////////////////////////////////////////

Inserta este código en tu Asesor Experto y la felicidad puede llegar a ti

Gracias. Pero, necesito que el saldo se muestre como una línea, en toda la sección del gráfico.
 
evillive:
Es extraño, a mí me funciona. ¿Tal vez haya errores en el archivo de registro?

Lo he descubierto, por error guardé la plantilla con el nombre Debug.tpl con el Expert conectado, por lo que había una instrucción extra al final del archivo de la plantilla:

<expert>
name=ProbaExpert
flags=275
window_num=0
<inputs>
StrPeriod_Direct=
Pips=50
</inputs>
</expert>

Guardado plantilla sin experto, todo funcionó, gracias.

 
for(int i=0;i<OrdersHistoryTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {  
         if(OrderType()==OP_SELL)
          {  
           if(OrderStopLoss()>OrderOpenPrice())
            {                     
              if(OrdersTotal() == 0)
              {              
               double SELLprice=Bid;  
               int ticket =OrderSend(Symbol(), OP_SELL,Lot*=2,SELLprice, 3,SELLprice+StopLoss* Point, 0, "", MagicNumber,0, clrNONE);
                 
              }
            }            
          }              
        }
     }     

¡Por favor, aconsejar, quiero hacer mi código para aumentar LOT en caso de un comercio de la pérdida, y en caso de un beneficio LOT volvió al volumen original!

 

Para mostrar el saldo como una línea en la visualización, tomé el código del artículo.

En el EA:

// сохранение последнего значения баланса в гл. переменную
   GlobalVariableSet( "vGrafBalance", AccountBalance() );

En el indicador:

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Blue
 
double balance[];
 
int init()
{
    IndicatorShortName( "vGrafBalance" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, balance );
    SetIndexLabel( 0, "Balance" );
}
int start()
{
    balance[0] = GlobalVariableGet( "vGrafBalance" );
    return(0);
}

La línea no aparece. Al final sólo hay un valor en la última barra cero del buffer.

 
Forexman77:

Para mostrar el saldo como una línea en la visualización, tomé el código del artículo.

En el EA:

En el indicador:

La línea no aparece. Al final sólo hay un valor en la última barra cero del buffer.

Para mostrar en todas las barras, es necesario contar todas las barras, como se hace habitualmente en los indicadores.