[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 340

 
dyxaa:

gente, come si chiude un ordine pendente in n, numero di pip se non è scattato?

Non può essere chiuso, ma può essere cancellato.

 

Disegno un indicatore per scopi di allenamento (cioè sto imparando) e ottengo questo risultato quando cambio i dati:


Lelinee rosse e blu non fluiscono dolcemente l'una nell' altra.

Perché succede questo e come posso evitarlo?

  for(i = limit; i >= 0; i--) 
    {
     cciTrendNow      = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i);
     cciTrendPrevious = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i+1);

     if (cciTrendNow > st && cciTrendPrevious < st)
      {
       TrendUp[i+1] = TrendDown[i+1];
       ArrayInitialize( TrendDown[i+1], 0 ); // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }

     if (cciTrendNow < st && cciTrendPrevious > st) 
      {
       TrendDown[i+1] = TrendUp[i+1];
       ArrayInitialize( TrendUp[i+1], 0 );   // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }
    }

Il problema appare in questa parte del codice. Ma come superarlo - non poteva capire o pensare a qualcosa da solo. Si prega di avvisare.

 
dyxaa:

gente, come si chiude un ordine pendente in n, numero di pip se non è scattato?

Clicca sulla croce!
 
artmedia70:

Non stavo parlando di variabili esterne. Stavo parlando di questo.

Immaginiamo una situazione. Una decisione deve essere presa in base all'ultima posizione aperta.


Per il tester:

Creiamo delle variabili, in cui memorizzeremo i dati necessari dell'ultima posizione aperta.

Non appena una nuova posizione viene aperta, aggiungeremo immediatamente i dati richiesti in queste variabili.

Quando arriva un segnale di apertura di una prossima posizione (per esempio, dopo 20 minuti del tester), dobbiamo controllare alcuni criteri, in base ai quali decidiamo i dati della posizione da aprire. Questi criteri, per convenzione, dipendono dalla precedente posizione aperta. Li leggiamo dalle variabili (li abbiamo salvati all'apertura precedente) e li usiamo come dati aggiuntivi per una nuova posizione.

Quando apriamo una posizione, memorizziamo i nuovi dati sulla posizione appena aperta nelle variabili.


Per davvero:

Immaginiamo la stessa situazione, ma... Immaginate che dopo che l'ultima posizione è stata aperta e i suoi dati memorizzati nelle variabili, sono passati 10 minuti (altri 10 minuti devono passare prima che la prossima posizione sia aperta (abbiamo appena assunto questo in un "tester")). E in questo intervallo di tempo, l'Expert Advisor è stato riavviato per qualche motivo.

Cosa succede dopo il riavvio dell'EA con i dati dell'ultima posizione aperta, che è stata memorizzata nelle variabili? Non esisteranno.

Quindi dove dobbiamo prenderli? Destra - ricerca. Per questo abbiamo bisogno della funzione di ricerca dei dati necessari. È quindi meglio trovare tutto in una volta, quando ne abbiamo bisogno, e non memorizzarlo in variabili, il che è davvero molto più facile e veloce.


Scusate per il chiarimento tardivo - appena uscito nel mondo ... :))



Grazie Artyom. Tutto ha un senso, naturalmente. Ecco perché sto imparando a scrivere con le funzioni. Ma a volte la logica non è così buona. Ecco perché inciampo. L'ultima volta che ho risolto questo problema espandendo tutti i dati del ciclo da una funzione all'altra, mi sono preso una pausa dalla programmazione in generale per un paio di giorni, per orientarmi. Ora continuerò ad andare avanti!
 
solnce600:

Signori, per favore consigliate come codificare il seguente algoritmo usando un ciclo.

se (iLow (Symbol (),0,1) > iLow (Symbol (),0,10))// se il MINIMO della prima candela > MINIMO della decima candela

OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point, "jfh",123 ); // aprire l'ordine.

DEVO

Se Basso 1 e contemporaneamente Basso 2 e contemporaneamente Basso 3...... . ...e contemporaneamente candela Low 9> candela Low 10 ( cioè candela Low da 1 a 9)

/ /aprire un ordine.

Grazie.

Comunque, se ho sentito bene la tua domanda, il codice sarebbe

bool have = true;

for (int i=0; i<10; i++)
  {
   if (Low[i] > Low[10])        // Как вариант:  if ( iLow(Symbol(),0,i) > iLow(Symbol(),0,10) )
    {
     have = false;
     break;
    }
  }

if(have) OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123 );    //открыть ордер.

Ma questo con l'accenno delle FAQ. Non avrei potuto farlo senza.

 

Ho un'idea, ma come farlo nella vita reale e come funzionerà in modo affidabile nella vita reale, non lo so proprio.

L'essenza è la seguente. Dovremmo entrare nel mercato dopo aver posizionato il gufo sul grafico immediatamente dopo la chiusura della barra, cioè all'apertura di una nuova barra. Questo è il primo ordine. Inoltre, quando l'ordine viene chiuso da un TP o un prezzo di Stop, dovremmo aprire immediatamente un ordine all'apertura di una nuova barra. Come farlo in modo più ragionevole?

Ho capito che dovremmo creare una variabile. Inserisce il prezzo aperto della barra corrente. E confronta questo valore con il prezzo di apertura della barra corrente. Se il valore della variabile non è uguale al prezzo di apertura della barra corrente con l'indice zero, apriremo un ordine.

È l'opzione migliore?

 
Chiripaha:

Disegno un indicatore per scopi di allenamento (cioè sto imparando) e ottengo questo risultato quando cambio i dati:


Lelinee rosse e blu non vanno a finire l'una nell'altra.

Perché succede questo e come posso evitarlo?

Il problema appare in questa parte del codice. Ma come superarlo - non poteva scoprire o pensare a qualcosa da solo. Puoi dirmelo per favore.


Uff... ho capito come funziona... : )))

Ora se solo potessi risolvere il resto del problema sarebbe molto meglio. Grazie a tutti coloro che hanno voluto aiutare! : ))

Apro altri 2 buffer esattamente uguali - non disegnano... Cos'è questa stregoneria... - Ok, studieremo e cercheremo. Però è un peccato perdere tempo sulla "bicicletta". In questo caso, quando inventarne uno nuovo?

 
hoz:

Ho un'idea, ma come farlo nella vita reale e come funzionerà in modo affidabile nella vita reale, non lo so proprio.

L'essenza è la seguente. Dovremmo entrare nel mercato dopo aver posizionato il gufo sul grafico immediatamente dopo la chiusura della barra, cioè all'apertura di una nuova barra. Questo è il primo ordine. Inoltre, quando l'ordine viene chiuso da un TP o un prezzo di Stop, dovremmo aprire immediatamente un ordine all'apertura di una nuova barra. Come farlo in modo più ragionevole?

Ho capito che dovremmo creare una variabile. Inserisce il prezzo aperto della barra corrente. E confronta questo valore con il prezzo di apertura della barra corrente. Se il valore della variabile non è uguale al prezzo di apertura della barra corrente con l'indice zero, apriremo un ordine.

È l'opzione migliore?


Se implementato, funzionerà in modo affidabile nel trading reale come nella demo. Ma non il fatto che sarà redditizio.

Devi aprire un ordine e questo è tutto . Ma non avete formulato in quale direzione l'ordine dovrebbe essere aperto e in quali condizioni questo lato è determinato.

Non devi confrontare nulla - semplicemente apri un ordine quando appare una nuova barra (in base al tuo input).

newBars = iBarShift(Symbol(), PERIOD_H1, lastH1BarTime);    // Это было найдено через поиск на форуме

Se non ne avete idea:

"E l'esperienza è figlia di duri errori.
E il genio è amico dei paradossi" (Alexander Sergeyevich per il tuo aiuto).

Devi fare (scrivere) un gufo e controllarlo sperimentalmente. - Non credo che qualcuno scriverà il gufo per te (gratuitamente). Dare un indizio è una cosa. Ma implementare le idee (pensieri) non è aiuto, ma lavoro.

 
borilunad:
Clicca sulla croce!

Esattamente. Brillantemente semplice ))))

Sto chiedendo il vostro aiuto) qui sta mettendo un ordine pendentecompriamo stop per esempio ho bisogno che si cancelli se il prezzo è passato 100 punti giù può farlo?

 
borilunad:
Clicca sulla croce!

Esattamente. Brillantemente semplice ))))

Sto chiedendo il vostro aiuto) qui sta mettendo un ordine pendentecompriamo stop per esempio ho bisogno che si cancelli se il prezzo è passato 100 punti giù può farlo?