[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 457

 
sergeev:

normalisez vos _lots

Merci ! Ça a aidé.
 
Bonjour, j'ai une question sur l'exportation de données vers Excel. J'ai besoin de l'indicateur (ou du script) pour exporter automatiquement les valeurs actuelles de "Solde", "Fonds", etc. vers Excel au début de chaque jour. Pouvez-vous me dire comment mettre cela en œuvre ? Ou du moins où lire à ce sujet. La recherche n'a donné aucun résultat, alors je pose la question ici. Merci.
 
Gerkl:
Bonjour, j'ai une question sur l'exportation de données vers Excel. J'ai besoin de l'indicateur (ou du script) pour exporter automatiquement les valeurs actuelles de "Solde", "Fonds", etc. vers Excel au début de chaque jour. Pouvez-vous me dire comment mettre cela en œuvre ? Ou du moins où lire à ce sujet. La recherche n'a donné aucun résultat, alors je pose la question ici. Merci.
Vous pouvez enregistrer un fichier csv avec Expert, Excel le traitera avec succès.
 
splxgf:
Vous pouvez enregistrer un fichier csv avec un expert et Excel le traitera avec succès.
Pouvez-vous me dire comment faire ? Et où en apprendre davantage à ce sujet. Merci.
 
Gerkl:
Pouvez-vous me dire comment faire ? Et où puis-je trouver plus d'informations à ce sujet ? Merci.
https://docs.mql4.com/ru/files
 

Comment faire pour qu'un indicateur dans l'EA ne soit pas dessiné sur un graphique ?

C'est-à-dire que les lignes de l'indicateur ne seraient pas dessinées sur le graphique. L'indicateur s'appelle comme ceci :

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
 
Merci. Bien que cela ne me dise pas grand-chose, je vais l'examiner.
 
belck:

Comment faire pour qu'un indicateur dans l'EA ne soit pas dessiné sur un graphique ?

C'est-à-dire que les lignes de l'indicateur ne seraient pas dessinées sur le graphique. L'indicateur s'appelle comme ceci :

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
À moins que vous ne le mettiez vous-même sur le graphique, il ne sera pas reflété lorsque l'EA fonctionnera. Comment avez-vous fait ?
 

Pendant le test de l'EA, je reçois l'erreur 130 - mauvais arrêts. Dans la fonction NewOrder, les variables externes TakeProfit et StopLoss devraient être transmises, et il me semble que j'ai tout fait pour y parvenir, mais comme le montre l'impression, des zéros sont transmis. Je comprends que la raison de cette erreur se trouve ici, mais je n'ai pas encore réussi à la trouver. J'ai besoin de votre aide.

extern int TakeProfit=100 ;
extern int StopLoss=100 ;

....................................

si(KVADRAT==1)
{
double Lot=GetLot(MaxRisk) ;
Print("Lot=",Lot) ;
si(Lot==0)
{
Print("pas assez de fonds") ;
retour(0) ;
}
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss) ;
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss) ;
KVADRAT=0 ;
}

.....................................

//+---------Функция расчета лота---------------------------------------+
double GetLot(int Risk)
{
double Free=AccountFreeMargin() ;
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED) ;
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT) ;
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT) ;
double Step=MarketInfo(Symbol(),MODE_LOTSTEP) ;
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step ;
si(Lot<Min_Lot)Lot=Min_Lot ;
if(Lot>Max_Lot)Lot=Max_Lot ;
si(Lot*One_Lot>Free)retour(0.0) ;
retour(Lot) ;
}

//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss)
{
double TP=0;//prise de profit
double SL=0;// stopLoss
double PR=0;// prix
while(!IsTradeAllowed())Sleep(100) ;
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL) ;
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL) ;
si(Cmd==OP_BUY)
{
PR=NormaliserDouble(Demande,Chiffres) ;
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits) ;
si(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits) ;
}
if(Cmd==OP_SELL)
{
PR=NormalizeDouble(Bid,Digits) ;
si(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits) ;
si(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits) ;
}
Print("TakeProfit=",TakeProfit," StopLoss=",StopLoss," StopLevel=",MarketInfo(Symbol(),MODE_STOPLEVEL)) ;
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE) ;
if(tic<0)Print("order open error :",GetLastError()) ; Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP) ;
retour(tic) ;
}

 
DhP:
Faites de la magie avec cette fonction.

* parti faire de la magie *
Raison: