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

 
Snegovik:


Ci sono script che aprono contemporaneamente la vendita su un simbolo sul secondo acquisto.

Sono interessato a uno script che possa aprire simultaneamente una vendita/acquisto su 7-10 simboli, con un volume specificato per ogni simbolo, ai prezzi correnti.

Esempio:

vendere EURUSD 1

comprare GBPUSD 1.5

vendere USDCAD 1.2

comprare AUDUSD 1.1

comprare NZDUSD 2

comprare USDCHF 3

Lo script MultiOrders è quasi perfetto, solo che ci sono 5 campi per i simboli.

Allo stesso modo. Scoprite questo script e voi, nel vostro script, ne uscirete ancora meglio, e potrete anche aggiungere funzionalità extra.
 
snail09_1:
È difficile da controllare o è pigro? È più facile fare la domanda. Il prezzo dell'offerta può essere zero? Può, se non si vende nulla8-(
non è la questione se il terminale può resettare l'offerta ad un certo punto (l'esperienza personale è interessante)
 
YOUNGA:
Non si tratta di sapere se il terminale può azzerare l'offerta ad un certo punto (l'esperienza personale è interessante).

Non ne ho mai visto uno. Avete visto lo zero assoluto sul termometro?

Beh, non può essere questo il problema. Forse non hai nessuno con cui parlare?

 
snail09_1:
Allo stesso modo. Scoprite questo script e il vostro script verrà fuori ancora meglio, e potrete anche aggiungere funzionalità extra.


Non capisco bene come scrivere una .dll

se ho capito bene, la base dello script è in questo file.

 
Ragazzi! Nel tester di strategia sulla storia, l'Expert Advisor non fornisce informazioni al file, solo quando si fa trading online. Qual è la ragione e come posso risolvere il problema? Non ho idea di come curarlo, grazie.
 
net:
Ragazzi! Nel tester di strategia sulla storia, l'Expert Advisor non fornisce informazioni al file, solo quando si fa trading online. Qual è la ragione e come posso risolvere il problema? Non ho idea di come curarlo, grazie.
Lo salva solo nella directory \MetaTrader 4\testerexperts\files
 
Snegovik:


Non capisco bene come scrivere una .dll

Se ho capito bene, la base dello script è in questo file.


Nessun 1 script può inviare un ordine al server per aprire diversi ordini contemporaneamente. Bisogna aprirne uno alla volta. La DLL che vi viene offerta crea semplicemente una finestra visiva e lavora con essa. Gli strumenti MQL4 possono essere sufficienti per il tuo compito
 

Ecco la mia funzione di calcolo del lotto (martin):

double Lots()
 {
 //  double LotsArray[]={mode_1,mode_2,mode_3,mode_4,mode_5,mode_6};
 //  double LotsArray[]= {0.1,0.2,0.3,0.4,0.5,0.6};
   int LossCount = 0;
   double LotM=Lot;
   int total = OrdersHistoryTotal();
   for (int i = total-1; i >= 0; i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
       {
         if (OrderProfit() > 0)
          {
            LotM=LotsArray[0];
          }         
          else
           {
            LotM=LotsArray[LossCount+1];
            LossCount++;
           }
       }
    }
   return(LotM);
}

Queste sono le variabili globali per questa funzione:

double Lot = 0.1;
extern double mode_1 = 0.1;
extern double mode_2 = 0.2;
extern double mode_3 = 0.4;
extern double mode_4 = 0.8;
extern double mode_5 = 1.6;
extern double mode_6 = 3.2;
double LotsArray[5];

Ecco cosa c'è in int init()

 LotsArray[0] = mode_1;
 LotsArray[1] = mode_2;
 LotsArray[2] = mode_3;
 LotsArray[3] = mode_4;
 LotsArray[4] = mode_5;
 LotsArray[5] = mode_6;

Quando si testa l'Expert Advisor vengono visualizzati i seguenti errori nel log di Expert Advisor:

2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: ERROR BUYSTOP : 1.22443 SL:1.22377 TP:1.22506
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: OrderSend error 4051
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: invalid lots amount for OrderSend function
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: Bid:1.22432 Ask:1.22438 avgSpread:0.00006  Commission rate:0.00003  Real avg. spread:0.00009  Lots:1.00   HIGH SPEED   MAX
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: 2012.07.19 16:19 tick:514
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: ERROR BUYSTOP : 1.22442 SL:1.22376 TP:1.22505
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: OrderSend error 4051
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: invalid lots amount for OrderSend function
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: Bid:1.22431 Ask:1.22437 avgSpread:0.00006  Commission rate:0.00003  Real avg. spread:0.00009  Lots:1.00   HIGH SPEED   MAX
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: 2012.07.19 16:19 tick:513

C'è qualcosa di sbagliato nel codice? Cosa può significare?

Qui https://docs.mql4.com/ru/runti me/errors vedo che questo è un errore:

ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Cioè l'errore è dovuto a parametri sbagliati. Come ho capito il lotto sbagliato. Ma non capisco cosa c'è di sbagliato qui.

 
hoz:

Ecco la mia funzione di calcolo del lotto (martin):

Queste sono le variabili globali per questa funzione:

Ecco cosa c'è in int init()

Quando si testa l'Expert Advisor vengono visualizzati i seguenti errori nel log di Expert Advisor:

C'è qualcosa di sbagliato nel codice? Cosa può significare?

Qui https://docs.mql4.com/ru/runti me/errors vedo che questo è un errore:

ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Cioè l'errore è dovuto a parametri sbagliati. Come ho capito il lotto sbagliato. Ma non capisco cosa c'è di sbagliato qui.


doppio LotsArray[5]; 5 a 6 corretto.
 
Salve, è possibile modificare un ordine una volta sola? Attualmente sto modificando un ordine ad ogni tick!