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

 
yosuf:
Un EA che funziona correttamente non piazza ordini per esattamente 1 ora, e poi lavora normalmente per altre 23 ore. La "pausa" da 23 a 24 ore e funziona di nuovo. Ma è scritto nelle impostazioni: HourStart 0, HourEnd 24.


Come sei piccolo?

Arrivano le zecche?

Se sì, l'EA tenta di aprire un ordine?

Se sì, qual è il numero del biglietto restituito da OrderSend()?

Se "-1", quale codice di errore restituisce GetLastError()?

 
PapaYozh:


Perché sei così piccolo?

Arrivano le zecche?

Se sì, l'EA tenta di aprire un ordine?

Se sì, qual è il numero del biglietto restituito da OrderSend()?

Se "-1", quale codice di errore restituisce GetLastError()?

1. In arrivo;

2. Stanno arrivando, come al solito, e persistentemente;

3., 4. - Ora controllo con il registro.

Mi sono ricordato, e sul tester non effettua ordini durante questo periodo.

Grazie.

 

Buongiorno cari amici. Una volta programmavo in C++ (istituto circa 10 anni fa).

Ho bisogno di aiuto con questa domanda:

L'algoritmo apre 2 ordini pendenti per condizione. Un BUYSTOP si apre sempre per primo, un SELLSTOP dopo.

Questo è un nuovo TIC:

Come rintracciare se ci sono già ordini funzionanti (BUY ? SELL ? BUYSTOP? SELLSTOP? ) ?

Come faccio a sapere con un nuovo tick se un ordine TakeProfit attivato è chiuso + in questo caso chiudere l'ordine opposto (se ce n'è ancora uno)?

 

Ciao, potresti per favore darmi il codice di un indicatore per disegnare una linea come questa, o meglio ancora un raggio basato su questi due punti.

 
silhouette: (с. 259)

Un consiglio, per favore:

Voglio fare una MA multi-timeframe, che cambi il suo colore quando il trend cambia. Ho fatto la visualizzazione del prezzo medio da altri timeframe, ma non so come risolvere il problema del cambio di colore.


Quindi, qualcuno può suggerire un'idea o anche un modo diretto di procedere?
 
L'indicatore non disegna affatto. Non riesco a capire quale sia l'errore, tutto sembra scritto correttamente. Non so cosa pensare. E circa lo stesso codice, senza la funzione e senza una grande aggiunta alla fine, disegna!!! Per favore, ditemi se c'è qualcosa che non so, non capisco, o semplicemente in qualche modo non vedo l'errore che avrei potuto capire.
//+------------------------------------------------------------------+
//|                                            ИндюкДимонакомпил.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#import "user32.dll"
   int   PostMessageA(int  hWnd,int  Msg,int  wParam,string lParam);
#import
#define WM_COMMAND                     0x0111
int delimiter = 0;

#property indicator_chart_window
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];
double СинняячертаBuffer3[];
 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 extern int T=4,K=200;
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
int pereklutsatel;
double naklon,linija2; int P;extern int RO=1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;

   for (int i=limit;i>=0;i--) {
//----
 for ( int J=0;J<=RO;J++){
//----

  // for(int i=Bars; i>=0;i--)
   i=Bars;
      бар_вершина=iHighest( NULL,  timeframe, MODE_HIGH, K, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения=iLowest( NULL,  timeframe, MODE_LOW,NormalizeDouble ( бар_вершина/2,0), start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало=iLowest( NULL,  timeframe, MODE_LOW,NormalizeDouble (бар_вершина*1.5,0), бар_вершина ) ;
       начало=Low[ бар_начало ];
       
         
  if(начало>основание_первого_снижения){naklon=(начало-основание_первого_снижения)/(бар_начало-бар_основание_первого_снижения);
 
    НижняячертаBuffer2[бар_начало]=начало;linija2=начало;for(i=бар_начало-1;i>=0;i--){linija2=linija2-naklon;
   
    НижняячертаBuffer2[i]=linija2;
     
   }
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;}
    
    
         for (i=0;i<100;i++){  СинняячертаBuffer3[i]= Open[i];}
          for (i=330;i<500;i++){  СинняячертаBuffer3[i]= Open[i];}

     ВерхняячертаBuffer1[бар_начало]=начало;
     
 double точка4; int бар_точка4;   бар_точка4=iHighest( NULL,  timeframe, MODE_HIGH, бар_основание_первого_снижения, 3 ) ; 
  точка4 =High[ бар_точка4 ];  
   
   if(вершина>точка4){naklon=(начало-точка4)/(бар_начало-бар_точка4);  
   double linija1=начало;for(i=бар_начало-1;i>=0;i--){linija1=linija1-naklon;ВерхняячертаBuffer1[i]=linija1; }}
   
double vulf=НижняячертаBuffer2[0];
  if ( vulf==Ask&&vulf==Bid)vulf=1;
  else{ for (vulf=vulf+Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf-Point){
           if ( vulf==Ask&&vulf==Bid){vulf=1;}} 
      for (vulf=vulf-Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf+Point){
           if ( vulf==Ask&&vulf==Bid)vulf=1;} 
              
           
           
           }
           
           
   if (vulf==1){Comment ("  Есть вульв!!! "  , "  timeframe " , timeframe);return(0);  }
    if (vulf!=1&&pereklutsatel==1) {    
   
     if(delimiter<3){delimiter++;Comment(delimiter);return(0);}
   delimiter=0;
    fChangePeriod();P++;
                                 
                   }  } }
//----
   return(0);
  }
//+------------------------------------------------------------------+

void fChangePeriod(){int ii,hwd = WindowHandle(Symbol(),Period());
   switch(Period()){
      case PERIOD_W1    : ii = 33134; break; //PERIOD_D1;
      case PERIOD_D1    : ii = 33136; break; //PERIOD_H4;
      case PERIOD_H4    : ii = 33135; break; //PERIOD_H1;
      case PERIOD_H1    : ii = 33140; break; //PERIOD_M30;
      case PERIOD_M30   : ii = 33139; break; //PERIOD_M15;
      case PERIOD_M15   : ii = 33138; break; //PERIOD_M5;
      case PERIOD_M5    : ii = 33137; break; //PERIOD_M1;
      case PERIOD_M1    : ii = 33141; break; //PERIOD_W1;
   }     
   PostMessageA(hwd, WM_COMMAND, ii, 0);
   return;
}
 
Dimka-novitsek:
L'indicatore non disegna affatto. Non riesco a capire quale sia l'errore, tutto sembra scritto correttamente. Non so cosa pensare. E circa lo stesso codice, senza la funzione e senza una grande aggiunta alla fine, disegna!!! Per favore, ditemi se c'è qualcosa che non so, non capisco, o semplicemente in qualche modo non vedo l'errore che avrei potuto capire.

Certo che no, non ha buffer di indicatori.
 
Come no?
 
Dimka-novitsek:
Come potrei non farlo?


Dove sono?

Dimmene uno.

 
Ora, penso di avere qualcosa... Grazie!!!!!!!!!!!!!!!!!!!!