[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 196

 
torah01:

comprare


int start()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid- 50*Point,Bid+50*Point);

ritorno(0);
}

aiuto per favore...

Cambiato + in -. E specificate quali stop e take avete bisogno, ora avete stop=70 + spread, take=+30 meno spread
 
TheXpert:
Per favore, non diffondete l'eresia in pubblico. Vai a fare il nerd da qualche altra parte, c'è molto da fare...

Grazie, stavo venendo a consultarmi con voi.
 
NickXXX:

1. Qui il doppio è stato applicato solo per aggiungere minuti e ore, in modo che i punti di riferimento possano essere designati come HH.MM (es. 16. 23).

2. Guardando le ultime pagine, c'è ovviamente il datetime, ma non esattamente lo stesso. Emettono semplicemente in formato HH.MM l'ora dell'ultimo ordine.



Non è una buona ricerca. Pagina 190, ora del post 18.09.2011 23:03
 
nemo811:

Salve.

Per favore aiutatemi a correggere il codice.

Entrambe le linee qui sotto sono glitchate.

Grazie in anticipo.

Il programma stesso:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY avrebbe più senso

 
tara:

< 0,6, o qualcosa del genere. Il resto della divisione è sempre meno di uno :)

Perché?) Il resto di 12 diviso per 10 = 2.
NickXXX:

E se ci sono molte variabili come questa?

È un peccato o funzionerà?

E un'altra piccola domanda, se diciamo che imposto un intervallo (per esempio 16.00-16.03) per l'esecuzione di una condizione. Come fare in modo che lo esegua solo una volta, nonostante l'arrivo di nuovi tick?

Questo funziona. E per farlo solo una volta, inserite una variabile di servizio aggiuntiva, qualcosa del genere

bool flag=true;

int start()
{
  if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag=false;
  }
}
 
Figar0:

Perché?) Il resto di 12 diviso per 10 = 2.

Questo funzionerà. E per farlo una volta sola, inserite una variabile di servizio aggiuntiva, come questa:


Sì, è un po' glitchato :)
 
tara:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY avrebbe più senso.

Non potrei essere più d'accordo. Di notte, il mio cervello rallenta.

Tuttavia, anche con questa correzione ho notato che il glitch di cui sopra (confusione tra variabile magica e numero) nello script si verifica quando si ridichiara la variabile int MAGIC; (proprio questa magia è bloccata per qualche motivo). Se si rimuove int MAGIC; (extern int MAGIC = 1; rimane), tutto funziona come un orologio.

Una domanda logica: perché ne ho bisogno? Puoi rimuovere int MAGIC; e vivere la tua vita in pace. MA.

Ho bisogno di mettere questo codice in una libreria. Ma se non definisco int MAGIC; ci sarà un errore.

Questo è quello che penso che dovrei fare. Funzionerà tutto questo nel mio Expert Advisor? Perché questo int MAGIC; ?

Lo script qui sotto:

extern int MAGIC = 1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int OrdTicket=OrdTicket_b();
  Alert (OrdTicket);

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int i;
  for(i=0;i<OrdersTotal();i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 
In quale cartella vengono salvate le impostazioni del server di posta nel terminale mt-4?
 

Compagni, aiuto per favore... Ho scritto un codice semplice, ma quando si compila dice che le parentesi sono sbilanciate, ma le ho già contate 300 volte - tutto è a posto

L'idea è molto semplice - se il MACD è stato sopra (o sotto) lo 0 per 7 minuti o meno, la posizione viene aperta

//+------------------------------------------------------------------+
//| MACD ^^^.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"

extern int TP = 100;
extern int TS = 100;
extern double lots = 0,1;
int slip = 3;
int Magic = 1;

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{
//----

int totale,biglietto; //dichiarato totale e biglietto
int signal = signal_MACD(); // signal_MACD passa il valore al segnale
AnalyzeSignal(signal); //analizza il segnale
int MACD[8] = {0,1,2,3,4,5,6,7}; //crea un array MACD unidimensionale
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);

total = OrdersTotal(); //il totale conta gli ordini

int signal_MACD() //calcolare il segnale MACD
{
if(total<1) //se gli ordini sono inferiori a 1, considera le condizioni
{
se(MACD[0]<0)
{
se(MACD[1]>0)
{
se(MACD[2]>0)
{
{ se(MACD[3]>0)
{
{ se(MACD[4]>0)
{
{ se(MACD[5]>0)
{
{ se(MACD[6]>0)
{
{ se(MACD[7]<0)
{
ritorno(-100);
}
}
}
}
}
}
}
}
se(MACD[0]>0)
{
se(MACD[1]<0)
{
se(MACD[2]<0)
{
{ se(MACD[3]<0)
{
{ se(MACD[4]<0)
{
{ se(MACD[5]<0)
{
{ se(MACD[6]<0)
{
se(MACD[7]>0)
{
ritorno(100);
}
}
}
}
}
}
}
}
}
}

void AnalyzeSignal(int signal)
{
se(segnale == 100)
{
ticket = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green);
se(biglietto>0)
{
OrderSelect(ticket,SELECT_BY_TICKET;)
Print("aperto per l'acquisto al prezzo:" OrderOpenPrice());
}
else
{
Print("opened failed due to:" GetLastError());
ritorno(0);
}
}
se(segnale == -100)
{
ticket = OrderSend(Symbol(),OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green);
se(biglietto>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("aperto alla vendita al prezzo:" OrderOpenPrice());
}
else
{
Print("opened failed due to:" GetLastError());
ritorno(0);
}
}
}

//----
ritorno(0);
}
//+------------------------------------------------------------------+

 
p.s. come si fa a disegnare una sceneggiatura così bella come la tua?
Motivazione: