Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 838

 
VOLDEMAR:

Je n'arrive pas à faire le design ensemble

Il continue à jurer sur

En journée, je dois obtenir l'index


ENUM_DAY_OF_WEEK de type int.
 
evillive:
ENUM_DAY_OF_WEEK est de type int.
J'ai essayé à la fois int, string et double
 
evillive:
Vous ne pouvez pas le faire manuellement, le terminal ne dessine ces icônes que si vous négociez à l'aide du programme. Vous pouvez également copier l'historique des transactions manuelles sur le graphique et toutes les transactions seront marquées.

Et si vous modifiez la couleur de chaque ordre ouvert de cette manière, la transaction sera-t-elle reflétée sur le graphique ?

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

       }

      }

     }

    }

   }

 

Décidé d'afficher le solde comme indicateur lors de l'exécution de la visualisation.

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

de l'indicateur :

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

Et on l'appelle trop souvent) Ça rend l'écran blanc. La question est rhétorique, qu'est-ce qui ne va pas ?

 
Forexman77:

Décidé d'afficher le solde comme indicateur lors de l'exécution de la visualisation.

de l'indicateur :

Et on l'appelle trop souvent) Ça rend l'écran blanc. La question est rhétorique, qu'est-ce qui ne va pas ?

bool balans ;

chaîne de caractères 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) ;

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

Insérez ce code dans votre conseiller expert et le bonheur viendra peut-être à vous.

 
woin2110:

bool balans ;

chaîne de caractères 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) ;

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

Insérez ce code dans votre conseiller expert et le bonheur viendra peut-être à vous.

Merci. Mais j'ai besoin que le solde soit affiché sous forme de ligne, sur toute la section du graphique.
 
evillive:
C'est étrange, ça marche pour moi. Peut-être y a-t-il des erreurs dans le fichier journal ?

J'ai trouvé la solution, j'ai enregistré par erreur le modèle avec le nom Debug.tpl avec l'Expert connecté, il y avait donc une instruction supplémentaire à la fin du fichier modèle :

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

Sauvegardé le modèle sans expert, tout a fonctionné, merci.

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

Veuillez me conseiller, je veux que mon code augmente le LOT en cas de perte, et qu'en cas de profit, le LOT revienne au volume original!

 

Pour afficher le solde sous forme de ligne dans la visualisation, nous avons repris le code de l'article.

Dans l'EA :

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

Dans l'indicateur :

#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 ligne n'apparaît pas. À la fin, il n'y a qu'une valeur sur la dernière barre, la barre zéro, dans le tampon.

 
Forexman77:

Pour afficher le solde sous forme de ligne dans la visualisation, nous avons repris le code de l'article.

Dans l'EA :

Dans l'indicateur :

La ligne n'apparaît pas. À la fin, il n'y a qu'une valeur sur la dernière barre, la barre zéro, dans le tampon.

Pour afficher sur toutes les barres, vous devez compter toutes les barres, comme cela est généralement fait dans les indicateurs.