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

 
In questo momento, per ogni barra, mette un cloze nell'array. E se non lo faccio, allora devo calcolare da quale barra raccogliere i dati, fare il loop e filtrare. E questo lascia solo il secondo.
 
gince:

Non so quanti elementi dovrebbe avere un array. Potrebbe essere 40 o 65. In una parola, abbiamo bisogno di un array dinamico.

Usate ArraySize per cambiare la dimensione dell'array:

int start()
  {
//----
   int start=3;
   int end1=30;
   int end2=90;
   int array[];

     ArrayResize(array, (end1-start) );
     int size1=ArraySize(array);
     ArrayResize(array, (end2-start) );
     int size2=ArraySize(array);

   Comment("start=",start,", end1=",end1,", end2=",end2,", size1=",size1,", size2=",size2);
//----
   return(0);
  }
Nei commenti viene fuori: start=3, end1=30, end2=90, size1=27, size2=87.
 
LeksusMt4:

Buon pomeriggio, per favore aiutatemi, il robot con 0.1 lotto moltiplica i volumi e con 0.01 no.... Cosa posso cambiare?


E c'è un letto! SRC! Per inserire il codice!
 
borilunad:

E poi c'è la bolgia! SRC! Per inserire il codice!


Non sono ancora molto bravo... dimmi cosa fare....

 

Utilizzando la funzione SetTLine() di KimIV https://forum.mql4.com/ru/38949/page6#434255 . Il problema è che ho bisogno di due linee (in alto e in basso), ma non mi funziona. Ho fatto un'altra funzione SetTLine1() con altre variabili, ma ancora non funziona. Come fare?

datetime d0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime d1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(d1)==0 || TimeDayOfWeek(d1)==6) d1-=24*60*60;
d1=StrToTime(TimeToStr(d1, TIME_DATE));
datetime d2=d1-24*60*60;
while (TimeDayOfWeek(d2)==0 || TimeDayOfWeek(d2)==6) d2-=24*60*60;
d2=StrToTime(TimeToStr(d2, TIME_DATE));
int b2=iBarShift(NULL, 0, d2);     // номер бара начала второго дня
int b1=iBarShift(NULL, 0, d1);     // номер бара начала первого дня
int b0=iBarShift(NULL, 0, d0);     // номер бара начала текущего дня
int n2=iLowest(NULL, 0, MODE_LOW, b2-b1-1, b1);
int n1=iLowest(NULL, 0, MODE_LOW, b1-b0-1, b0);
datetime t1=Time[n2];
double   p1=Low[n2];
datetime t2=Time[n1];
double   p2=Low[n1];
SetTLine(Magenta, "", t1, p1, t2, p2, True, STYLE_SOLID, 3);   

datetime di0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime di1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(di1)==0 || TimeDayOfWeek(di1)==6) di1-=24*60*60;
di1=StrToTime(TimeToStr(di1, TIME_DATE));
datetime di2=di1-24*60*60;
while (TimeDayOfWeek(di2)==0 || TimeDayOfWeek(di2)==6) di2-=24*60*60;
di2=StrToTime(TimeToStr(di2, TIME_DATE));
int bi2=iBarShift(NULL, 0, di2);     // номер бара начала второго дня
int bi1=iBarShift(NULL, 0, di1);     // номер бара начала первого дня
int bi0=iBarShift(NULL, 0, di0);     // номер бара начала текущего дня
int ni2=iHighest(NULL, 0, MODE_HIGH, bi2-bi1-1, bi1);
int ni1=iHighest(NULL, 0, MODE_HIGH, bi1-bi0-1, bi0);
datetime t1i=Time[ni2];
double   p1i=High[ni2];
datetime t2i=Time[ni1];
double   p2i=High[ni1];
SetTLine(..................................................
 

Per favore aiutatemi con l'errore:ERR_INVALID_FUNCTION_PARAMVALUE - 4051 -Valore non valido del parametro della funzione.

Non riesco a trovare questo parametro non valido.

//--------------------------------------------------------------- 6 --
   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.         
         Print("Попытка открыть Buy. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("Попытка открыть Sell. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_SELL,Lts,Bid,2,SL,TP);//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL", Fun_Erorr);
            }             
         }
      return(0);
  }
//+------------------------------------------------------------------+

      
 
LeksusMt4:


Non lo capisco ancora molto bene... dimmi cosa fare....

L'SRC è qui:


E se il codice è molto grande, come nel tuo caso, allega il file:


 
LeksusMt4:


Non so ancora molto... dimmi cosa fare....


Ti ho risposto nell'altro thread! E cancella i tuoi post "portmanteau"!
 

Ora l'errore è 130, non capisco perché. Chi può dirmi dove sto sbagliando.

   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," - StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," + TakeProfit == ", TakeProfit," * Point ==",Point);         
         Print("Попытка открыть Buy. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,5),"| TP == ",NormalizeDouble(TP,5));
         MyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ", MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY == ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," + StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," - TakeProfit == ", TakeProfit," * Point ==",Point);
         Print("Попытка открыть Sell. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,Digits),"| TP == ",NormalizeDouble(TP,Digits));
         MyTicket=OrderSend(Symbol(),OP_SELL,0.1,Bid,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL == ", Fun_Erorr);
            }             
         }
 
atwas:
Il 30 e 31 marzo 2013 abbiamo tenuto una conferenza di 2 giorni su "Tutti i segreti delle scommesse vincenti". Tutti erano soddisfatti. Il 5 marzo lo pubblicheremo sul canale YouTube stavkana1000000. Programma: 5. Studio delle partite. 6. Identificazione delle sequenze. 7. Assegnazione di una riserva - Banca. 8. Calcola alla puntata media del KEF. Inserisci stavkana1000000 in qualsiasi motore di ricerca e ottieni la strategia delle scommesse sportive (calcio) gratuitamente. Oppure vieni alle conferenze online, che si tengono ogni sabato gratuitamente. Andrey Player.

Ehi! Da quale casinò vieni? Divieto perpetuo per il giocatore!