[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 745

 
artmedia70:
:) L'impazienza è di solito allenata in un altro ufficio... :)


Non c'è bisogno di allenare la mia pazienza per questo. Sono molto paziente.

Mi dispiace. Ho solo un grande carico di lavoro e non voglio assolutamente perdere tempo.

E mi dispiace ancora di più, perché l'autore del topic probabilmente non lo sa. Probabilmente uno scolaretto.

 
Vinin:


Non c'è bisogno di allenare la mia pazienza per questo. Sono molto paziente.

Mi dispiace. Ho solo un grande carico di lavoro e non voglio assolutamente perdere tempo.

E mi dispiace ancora di più, perché l'autore del topic probabilmente non lo sa. Probabilmente uno scolaretto.

Penso che molte persone si rendano conto che essere un moderatore è ingrato in molti modi. Tu fai qualcosa, ci provi, tieni le cose in ordine, e la lista delle persone insoddisfatte non si riduce. La gente...
Mi dispiace per gli offtops.
ZS. Mia figlia è una studentessa e capisce molto... :)
 
FoxUA:

Apre ancora questo ordine in un lotto.
Ecco come ho impostato le variabili nel mio Expert Advisor.
ed ecco l'apertura dell'ordine

È difficile non essere d'accordo con artmedia70 sul layout del tuo codice. È molto difficile da leggere, bisogna guardarlo a lungo per capire qualcosa, e poi bisogna mettere correttamente parentesi, spazi e rientri. Per favore, guardate il vostro stile ed evitate il caos nello scrivere il codice, anche se è composto da diversi blocchi, diversi autori. Dovreste portarlo in uno, il vostro stile, così sarà più facile lavorarci in futuro e modernizzarlo.

//+------------------------------------------------------------------+
extern int TakeProfit=18;
extern int StopLoss=18;
extern double Lot=1;
extern int StartTime=0;
//+------------------------------------------------------------------+
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
   int total = OrdersTotal();
   
   if(total == 0){
      NewOrder1(OP_BUY,Lot);
      NewOrder1(OP_SELL,Lot);
      NewOrder1(OP_BUYLIMIT,Lot);
      NewOrder1(OP_SELLLIMIT,Lot);
      NewOrder1(OP_BUYSTOP,Lot);
      NewOrder1(OP_SELLSTOP,Lot);
      Today=TimeDay(TimeCurrent());
   }
   
   for(int cnt=OrdersHistoryTotal();cnt>0;cnt--){
      OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
      if(OrderMagicNumber()== mag && OrderSymbol()==Symbol()){
         if(OrderType() == OP_BUY ){
            b=1;
            if(OrderClosePrice()==OrderTakeProfit())bt=1;
            if(OrderClosePrice()==OrderStopLoss())bs=1;
            bl=OrderLots()*100;
            break;
         }
         if(OrderType() == OP_SELL){
            s=1;
            if(OrderClosePrice()==OrderTakeProfit())st=1; 
            if(OrderClosePrice()==OrderStopLoss())ss=1;
            sl=OrderLots()*100;
            break;
         }
      }
   }

   if(bs==1||bl==1){   
      NewOrder1(OP_BUYLIMIT,Lot);
      Today=TimeDay(TimeCurrent());
   }
}    
//+------------------------------------------------------------------+
//| NewOrder1 function                                               |
//+------------------------------------------------------------------+
int NewOrder1(int Cmd,double Lot){
   double TP=0; //тейкпрофит
   double SL=0; //стоплосс
   double PR=0; //Цена
   double LT=0; //Лот
   int tic1;
   
   while(!IsTradeAllowed()) Sleep(100);
   
   if(Cmd==OP_BUYLIMIT){
      PR=Ask-Point*h;
      if(TakeProfit>0)TP=PR+TakeProfit*Point;
      if(StopLoss>0)SL=PR-StopLoss*Point;
      if(Lot>0)LT=3*Lot;
      
       tic1 = OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);   
   }
   
   if(tic1<0)Print(GetLastError());

   if(tic1>0){
      b=0;s=0; //соответственно бай или селл  
      bs=0;// если закрытие по стоплоссу ордера бай
      ss=0;// если закрытие по стоплоссу ордера sell
      bt=0;
      st=0;//      то же по ТП
      bl=0;sl=0; // лоты соответсвенно для бай и селл
   }
   
   return(tic1);
}
//+------------------------------------------------------------------+

L'ho provato nel tester, sembra aprire solo un ordine pendente (BUYLIMIT), ma non so davvero cos'altro dovrebbe fare e in quali circostanze.

 
ToLik_SRGV:

È difficile non essere d'accordo con artmedia70 sul layout del tuo codice. È molto difficile da leggere, bisogna guardarlo a lungo per capire qualcosa, e poi bisogna mettere correttamente parentesi, spazi, rientri. Per favore, guardate il vostro stile ed evitate il caos nello scrivere il codice, anche se è composto da diversi blocchi, diversi autori. Portatelo in un unico, vostro, stile, così che più tardi sarà più facile per voi lavorarci e modernizzarlo.

L'ho provato nel tester, sembra aprire solo un ordine pendente (BUYLIMIT), ma non so davvero cos'altro dovrebbe fare e in quali circostanze.

Anatoly! Bravo! Cominciavo a pensare che avrei dovuto abbandonare tutto e cominciare a pulire. Anche uno sguardo superficiale all'aspetto del codice fa riflettere... ...e soprattutto, non affatica l'occhio e non lo respinge. Rispetto!
 

Come faccio a calcolare l'importo delle recenti transazioni perdenti !!!

Grazie...

 
itum:

Come faccio a calcolare l'importo delle ultime transazioni perdenti !!!

Grazie...

Quanti recenti? ... esattamente in grammi... :)

Fate un ciclo sugli ordini chiusi del terminale, controllate il profitto dell'ordine e, se è meno, aumentate il contatore del numero di ordini perdenti chiusi, o, se avete bisogno dell'importo in denaro, non del numero di ordini perdenti, allora aggiungete il suo profitto (che è meno) all'ultimo valore della variabile double, dove avete memorizzato l'importo delle perdite in denaro...

 
artmedia70:

Deve essere davvero necessario... :) O il mio mouse è bloccato...

Cartella MT4/logs

Cartella di localizzazione MT4\tester\logs

Ce l'ho proprio qui:

D:\File programma\MetaTrader - E-Global TFG conto-1654729/logs

D:\File di programma\MetaTrader - E-Global TFG account-1654729\tester\logs


Grazie mille per la risposta, e mi scuso per i molti post dello stesso tipo, volevo fare la pulizia da solo ma sono stato preso dal mercato oggi. Grazie ancora a tutti.
 
LAIT123:
Grazie mille per la risposta, e mi scuso per i molti post dello stesso tipo, volevo fare la pulizia da solo ma sono stato preso dal mercato oggi. Grazie ancora a tutti.
Dovrai andare da Victor per inchinarti... :) Sto solo scherzando... Capisce tutto...
 
Ciao a tutti! Cari artmedia70, drknn, Abzasc, l'altro ieri usando i vostri consigli ho scaricato il file di font Wingdings mancante nella cartella di Windows e nel terminale Fractals è apparso normalmente. Grazie mille a tutti voi ragazzi. Saluti Furkat.
 
trader265:
Ciao a tutti! Cari artmedia70, drknn, Abzasc, l'altro ieri usando i vostri consigli ho scaricato il file di font Wingdings mancante nella cartella di Windows e nel terminale Fractals è apparso normalmente. Grazie mille a tutti voi ragazzi. Saluti Furkat.
Siete i benvenuti. Non era difficile da indovinare, e poi è una questione di tecnica... :)