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

 
VOLDEMAR:

Ha un'idea del perché?

Forse dovremmo fare dei libri di testo adeguati.

Forse fare un insegnamento adeguato?

Forse scrivere queste cose da qualche parte?

Forse allora le domande spariranno?

E non dovrai rispondere ad altre 100500 domande stupide!

Se ci sono queste domande, non è colpa dello studente, è colpa tua! Non l'hai descritto da nessuna parte!!!

Non è scritto nell'aiuto, non è scritto come tradurre da int a double.

Ma dice che se si assegna il tipo double a int, la parte frazionaria sarà cancellata,

Una persona normale concluderebbe logicamente che se int è assegnato a double, solo un punto con un dato numero di zeri sarà aggiunto...

Quindi è così ....

Vladimir, hai il diritto di esprimere tutta questa isteria al supporto tecnico del terminale che compri. E mentre stai usando un terminale gratuito, puoi ringraziare gli appassionati che l'hanno capito da soli e i fannulloni come te che non vogliono nemmeno spendere tempo per cercare materiale sul sito web e ancora stanno rispondendo a qualcosa per la centesima volta. Nessuno ti deve niente. Stanno cercando di farlo da soli. Se volete che vi diano fastidio, assumete un istruttore e incasinategli la testa. Ti darà un ciuccio e un bavaglino.

 
VOLDEMAR:

Ha un'idea del perché?

Forse dovremmo fare dei libri di testo adeguati.

Forse fare un insegnamento adeguato?

Forse scrivere queste cose da qualche parte?

Forse allora le domande spariranno?

E non dovrai rispondere ad altre 100500 domande stupide!

Se ci sono queste domande, non è colpa dello studente, è colpa tua! Non l'hai descritto da nessuna parte!!!

Non è scritto nell'aiuto, non è scritto come tradurre da int a double.

Ma dice che se si assegna il tipo double a int, la parte frazionaria sarà cancellata,

Una persona normale concluderebbe logicamente che se int è assegnato a double, solo un punto con un dato numero di zeri sarà aggiunto...

Quindi è così ....

In realtà è nel libro di STUDIO! È persino evidenziato!
 

Ciao a tutti. Sono abbastanza nuovo nella programmazione. Ho una domanda molto semplice.

Ho bisogno di un EA per aprire un'operazione quando i prezzi incrociano la MA, non sulla candela successiva, ma nello stesso momento senza aspettare la chiusura della candela, l'uscita non è importante

Grazie in anticipo

 
VOLDEMAR:

Ha un'idea del perché?

Forse dovremmo fare dei libri di testo adeguati.

Forse fare un insegnamento adeguato?

Forse scrivere queste cose da qualche parte?

Forse allora le domande spariranno?

E non dovrai rispondere ad altre 100500 domande stupide!

Se ci sono queste domande, non è colpa dello studente, è colpa tua! Non l'hai descritto da nessuna parte!!!

Non è scritto nell'aiuto, non è scritto come tradurre da int a double.

Ma dice che se si assegna il tipo double a int, la parte frazionaria sarà cancellata,

Una persona normale concluderebbe logicamente che se int è assegnato a double, solo un punto con un dato numero di zeri sarà aggiunto...

Quindi è così ....

Con chi stai parlando ora? Con il moderatore pubblico Sergeev, che, insieme ad altri appassionati, ha creato e popolato il thread "Navigatore del forum e risposte alle FAQ" appositamente per coloro che non hanno letto bene la documentazione?
Il tuo pathos sembra fuori luogo in questo contesto.
 
Activict:

Ciao a tutti. Sono abbastanza nuovo nella programmazione. Ho una domanda molto semplice.

Ho bisogno di un EA per aprire un'operazione quando i prezzi incrociano la MA, non sulla candela successiva, ma nello stesso momento senza aspettare la chiusura della candela, l'uscita non è importante

Grazie in anticipo

Non è una domanda, è una dichiarazione. Qual è la domanda? In anticipo, per favore.
 

Grazie per la tempestività, sono al lavoro e la mia testa sta bollendo alla fine del lavoro)) Ho imparato poco a scrivere semplici Expert Advisors, ma ora ho un'idea e ho bisogno di un frammento di codice per aprire una posizione quando i prezzi attraversano la MA e aprire al momento dell'attraversamento, ma l'ho ottenuto solo sulla candela successiva. Vorrei che mi mostrassero un pezzo di codice, credo che possa bastare una sola linea per quelli che sanno bene

 
Activict:

...penso che sia un caso di 1 linea per quelli che sono bravi a farlo.

...O un clic per quelli che sanno che c'è una ricerca.
Come si ottiene un segnale per l'intersezione di due MA?
 
Activict:

Grazie per la tempestività, sono al lavoro e la mia testa sta bollendo alla fine del lavoro)) Ho imparato poco a scrivere semplici Expert Advisors, ma ora ho un'idea e ho bisogno di un frammento di codice per aprire una posizione quando i prezzi attraversano la MA e aprire al momento dell'attraversamento, ma l'ho ottenuto solo sulla candela successiva. Voglio che mi mostrino un pezzo di codice e che mi mostrino come farlo. Credo che dovrebbe bastare una sola linea per quelli che sanno bene

Usa i prezzi della barra 0 - Close[0], ma[0], Ask, Bid - numerazione delle barre da 0. La 0-esima è l'ultima barra non finita.

Meglio leggere il forum: questa idea è stata testata molte volte - otterrai un sacco di falsi segnali, nessun pesce. Ma è possibile praticare.

 
ilunga:
esattamente

Ho modificato un po' lo script:

//+------------------------------------------------------------------------------------------+
//|                                                                     ArraySetAsSeries.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения скрипта
   double array1[][6];                                                   //объявляем массив-источник (массив, из к-о будут скопированы данные)
   double array2[][6];                                                   //объявляем массив-приемник (массив, куда будут скопированы данные), к-й на
                                                                         //момент объявления заполнен некоторыми данными
   int element_1=ArrayCopyRates(array1);                                 //копируем данные баров текущего графика в массив array1 
   int element_2=ArrayCopy(array2,array1,0,0,WHOLE_ARRAY);               //копируем данные всех баров в пользовательский массив
   bool element_3=ArrayGetAsSeries(array2);                              //проверка: является ли массив array1 массивом-таймсерией
   bool try_1=ArraySetAsSeries(array2,false);                            //устанавливаем НАПРАВЛЕНИЕ индексирования массива  
   bool element_4=ArrayGetAsSeries(array2);                              //проверка: является ли массив array2 массивом-таймсерией
   double element=array2[0][1];                                          //получаем значение цены открытия нулевого бара
//----------------------------------------------------------------------------------------- 2 -
   Comment("\nФункция ArrayCopyRates(array1) вернула: ",element_1,
           "\nФункция ArrayCopy(array2,array1,0,WHOLE_ARRAY) вернула: ",element_2,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_3,
           "\nФункция ArraySetAsSeries(array2;false) вернула: ",try_1,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_4,
           "\nЦена открытия нулевого бара (т.е. бара с ИНДЕКСОМ 0) равна: ",element,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",
           MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000,
           " миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Il risultato è il seguente:


Una domanda sorge spontanea: in questo caso ho copiato i dati delle barre del grafico corrente in un array1 bidimensionale usando la funzione ArrayCopyRates(array1). Poi nella linea successiva con la funzione ArrayCopy(array2,array1,0,0,WHOLE_ARRAY) ho copiato i dati dell'array1 nell'array2. Poi, usando la funzione ArrayGetAsSeries, ho controllato se array2 è un array-timeseries. E si è scoperto (come potete vedere dallo screenshot), che l'array è un array di serie temporali, anche se non l'avevo "elaborato" con la funzione ArraySetAsSeries prima.

Domanda: perché nel primo caso (domanda precedente) avevo bisogno di usare la funzione ArraySetAsSeries (per organizzare il mio array come un array di serie temporali), mentre in questo caso non ho bisogno di tale elaborazione.

P.S. Scusate l'insistenza, voglio solo capire bene, in modo da non lasciare "vuoti nella storia". Grazie per tutte le risposte precedenti.

 
VladislavVG:

Vladimir, avrai il diritto di esprimere tutta questa isteria al supporto tecnico del terminale che acquisti. E mentre ne usate uno gratuito, ringraziate gli appassionati che l'hanno capito da soli e i pigri come voi che non vogliono nemmeno passare il tempo a cercare il materiale sul sito e rispondono ancora a qualcosa per la centesima volta. Nessuno ti deve niente. Stanno cercando di farlo da soli. Se volete che vi diano fastidio, assumete un istruttore e incasinategli la testa. Vi darà un ciuccio e un bavaglino.

Vladislav con tutto il rispetto: se non vuoi rispondere, non rispondere, se vuoi rispondere, allora rispondi nella sostanza,

Dovete fare un corso di comunicazione o lezioni di psicologia, perchéle risposte sono"Leggete la documentazione 3 volte al giorno per 4-5 ore".E solo allora saltare con un tamburello."cosa che hai detto spesso...

"che mi hai dato molto. Grazie comunque per il tuo aiuto ....