Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 838

 
VOLDEMAR:

Non riesce a mettere insieme il design

Continua a bestemmiare a

In giorno devo ottenere l'indice


ENUM_DAY_OF_WEEK di tipo int.
 
evillive:
ENUM_DAY_OF_WEEK è di tipo int.
Ho provato sia int che string e double
 
evillive:
Non puoi farlo manualmente, il terminale disegna queste icone solo se fai trading usando il programma. In alternativa, è possibile copiare la cronologia del trading manuale sul grafico e tutti i trade saranno contrassegnati.

E se si modifica il colore di ogni ordine aperto in questo modo, il trade si rifletterà sul grafico?

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);

       }

      }

     }

    }

   }

 

Deciso di visualizzare il saldo come indicatore quando si esegue la visualizzazione

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

dall'indicatore:

#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);
  }
//+------------------------------------------------------------------+

E viene richiamato troppo spesso) Fa diventare lo schermo bianco. La domanda è retorica, cosa c'è che non va?

 
Forexman77:

Deciso di visualizzare il saldo come indicatore quando si esegue la visualizzazione

dall'indicatore:

E viene richiamato troppo spesso) Fa diventare lo schermo bianco. La domanda è retorica, cosa c'è di sbagliato?

bool balans;

stringa 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);

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

Inserisci questo codice nel tuo Expert Advisor e la felicità potrebbe venire da te

 
woin2110:

bool balans;

stringa 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);

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

Inserisci questo codice nel tuo Expert Advisor e la felicità potrebbe venire da te

Grazie. Ma ho bisogno che il saldo sia visualizzato come una linea, su tutta la sezione del grafico.
 
evillive:
Strano, per me funziona. Forse ci sono errori nel file di log?

L'ho capito, ho erroneamente salvato il modello con il nome Debug.tpl con l'Expert collegato, quindi c'era un'istruzione extra alla fine del file del modello:

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

Salvato il modello senza esperto, tutto ha funzionato, grazie.

 
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);
                 
              }
            }            
          }              
        }
     }     

Per favore consigliatemi, voglio fare il mio codice per aumentare il LOT in caso di perdita, e in caso di profitto il LOT ritorna al volume originale!

 

Per visualizzare l'equilibrio come una linea nella visualizzazione, ha preso il codice dall'articolo.

Nell'EA:

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

Nell'indicatore:

#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 linea non appare. Alla fine c'è solo un valore sull'ultima barra zero nel buffer.

 
Forexman77:

Per visualizzare l'equilibrio come una linea nella visualizzazione, avete preso il codice dall'articolo.

Nell'EA:

Nell'indicatore:

La linea non appare. Alla fine c'è solo un valore sull'ultima barra zero nel buffer.

Per visualizzare su tutte le barre, è necessario contare tutte le barre, come si fa di solito negli indicatori.
Motivazione: