[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 457

 
sergeev:

normalizzare i vostri _lotti

Grazie! Mi ha aiutato.
 
Ciao, ho una domanda sull'esportazione dei dati in Excel. Ho bisogno che l'indicatore (o lo script) esporti automaticamente i valori attuali di "Balance", "Funds", ecc. in Excel all'inizio di ogni giorno. Puoi dirmi come implementare questo? O almeno dove leggerlo. La ricerca non ha portato alcun risultato, quindi chiedo qui. Grazie.
 
Gerkl:
Ciao, ho una domanda sull'esportazione dei dati in Excel. Ho bisogno che l'indicatore (o lo script) esporti automaticamente i valori attuali di "Balance", "Funds", ecc. in Excel all'inizio di ogni giorno. Puoi dirmi come implementare questo? O almeno dove leggerlo. La ricerca non ha prodotto alcun risultato, quindi chiedo qui. Grazie.
Potete salvare un file csv con Expert, Excel lo elaborerà con successo.
 
splxgf:
Potete salvare un file csv con un esperto ed Excel lo elaborerà con successo.
Puoi dirmi come fare? E dove saperne di più. Grazie.
 
Gerkl:
Puoi dirmi come fare? E dove posso saperne di più? Grazie.
https://docs.mql4.com/ru/files
 

Per favore, consigliate come fare in modo che un indicatore nell'EA non sia disegnato su un grafico?

Cioè le linee dell'indicatore non verrebbero disegnate sul grafico. L'indicatore si chiama così:

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
 
Grazie. Anche se non mi dice molto, sarà esaminato.
 
belck:

Per favore consigliate come fare in modo che un indicatore nell'EA non sia disegnato su un grafico?

Cioè le linee dell'indicatore non verrebbero disegnate sul grafico. L'indicatore si chiama così:

indikator_1=iMA(NULL,60,maTrendPeriodv_1,0,MODE_SMA,PRICE_CLOSE,0);
A meno che non lo mettiate voi stessi sul grafico, non si rifletterà quando l'EA è in esecuzione. Come hai fatto?
 

Durante il test dell'EA ottengo l'errore 130 - stop sbagliati. Nella funzione NewOrder dovrebbero essere passate le variabili esterne TakeProfit e StopLoss, e mi sembra di aver fatto di tutto per ottenere questo, ma come mostra la stampa vengono passati degli zeri. Capisco che la ragione di questo errore si trova qui, ma non sono ancora riuscito a trovarla. Ho bisogno del vostro aiuto.

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

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

se(KVADRAT==1)
{
double Lot=GetLot(MaxRisk);
Stampa("Lotto=",Lotto);
se(Lotto==0)
{
Stampa("non ci sono abbastanza fondi");
ritorno(0);
}
NewOrder(OP_BUYSTOP, Lot, TakeProfit, StopLoss);
NewOrder(OP_SELLSTOP, Lot, TakeProfit, StopLoss);
KVADRAT=0;
}

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

//+---------Функция расчета лота---------------------------------------+
doppio GetLot(int Rischio)
{
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;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0);
ritorno(Lotto);
}

//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot,int TakeProfit,int StopLoss)
{
double TP=0;//takeProfit
double SL=0;// stopLoss
double PR=0;// prezzo
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);
se(Cmd==OP_BUY)
{
PR=NormalizeDouble(Ask,Digits);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
se(Cmd==OP_SELL)
{
PR=NormalizeDouble(Bid,Digits);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(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);
ritorno(tic);
}

 
DhP:
Fate un po' di magia con questa funzione.

# andato a fare magia #
Motivazione: