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

 
artmedia70:

Non ho ancora cercato gli errori - c'è molto da fare.

Per chiudere Sell dove c'è la croce rossa, devi controllare la barra corrente. Se Ask<= livello di chiusura && Open[0]>livello di chiusura


Qualcosa non funziona affatto Un accordo di vendita con il codice if(Ask<=PriceLow && Open[0]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); non chiude affatto.


Se interessati all'argomento per un contatto accelerato mi skype alexey1979621

 
alexey1979621:

Qualcosa non funziona OrderClose(OrderTicket(),OrderLots(),Ask,3,White); non chiude if(Ask<=PriceLow && Open[0]>PriceLow); non chiude affatto.


Se interessati all'argomento per una comunicazione veloce con me skype alexey1979621


 if(Ask<=PriceLow && High[1]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
 
artmedia70:


Non ha funzionato. Forse questa cosa if(Volume[0]>1) ritorna;
 
alexey1979621:

Test a prezzi di apertura?

È tutta una questione di zecche

 
test su tutte le zecche
artmedia70:

Test a prezzi di apertura?

È tutta una questione di zecche


test su tutte le zecche
 
alexey1979621:
test su tutte le zecche test su tutte le zecche

E dov'era la linea dell'indicatore al momento del Sell close?

 
alexey1979621:

Corretto, ho chiuso il trade come nello screenshot sopra, ma la croce rossa dovrebbe essere lì.

Sono d'accordo sul fatto che ExtremeTMA è in overdrawing, ma credo che non influisca sulla ricerca di punti di ingresso, la cosa principale qui sono i filtri. Ho usato l'indicatore TDI. Ho allegato quello che ho fatto (non ho buone mani, ecco perché questo EA dovrebbe essere gestito correttamente). Ho solo un problema con esso, ci vogliono circa 5 ore in tester per 1 anno (ho fatto un errore da qualche parte). Se non è difficile controllare gli errori.

Provate ad aprire gli ordini nel modo seguente:

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   //----
   if (OrdersTotal()>0)
   {  for (int i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()!=Symbol())   continue;
            if (OrderMagicNumber()!=Magic) continue;
            {  if(OrderType()==OP_BUY)  buys++;
               if(OrderType()==OP_SELL) sells++;
            }
   }  }  }
   //---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

Ho notato che hai impostato Magic=124, ma il codice dice subito 124. Lo stesso vale per Slippage, OrderSend e OrderClose hanno 3 (tre).

 
alexey1979621:

Corretto, ho chiuso il trade allo stesso modo come nello screenshot sopra, ma ho bisogno di chiudere dove c'è la croce rossa.

Sono d'accordo sul fatto che ExtremeTMA è in overdrawing, ma credo che non influisca sulla ricerca di punti di ingresso, la cosa principale qui sono i filtri. Ho usato l'indicatore TDI. Ho allegato quello che ho fatto (non ho buone mani, ecco perché questo EA dovrebbe essere gestito correttamente). Ho solo un problema con esso, ci vogliono circa 5 ore in tester per 1 anno (ho fatto un errore da qualche parte). Se non vi dispiace cercare gli errori.

È possibile che la velocità dell'EA diminuisca a causa della pesantezza dei calcoli dell'indicatore personalizzato. Se vuoi controllare la severità dei calcoli, fai il seguente script sul grafico su cui fai trading. Se non c'è nessun commento per un lungo periodo, allora diminuite N a 100000 o anche meno. Vedere quanti millisecondi ci vogliono per ogni iterazione.

//---
int    N=1000000;
//---
double PriceHigh, PriceLow, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine;
int    timestart, timestop;
//---
string TimeFrame         = "current time frame";
int    HalfLength        = 56;
int    Price             = PRICE_CLOSE;
double ATRMultiplier     = 2.0;
int    ATRPeriod         = 100;
bool   Interpolate       = true;
double TrendThreshold    = 0.5;
bool   Distances         = false;
//---
int RSI_Period           = 13;         //8-25
int RSI_Price            = MODE_CLOSE;           //0-6
int Volatility_Band      = 34;    //20-40
int RSI_Price_Line       = 2;      
int RSI_Price_Type       = MODE_SMA;      //0-3
int Trade_Signal_Line    = 7;   
int Trade_Signal_Type    = MODE_SMA;   //0-3
bool UseAlerts           = false;
//===============================================
int start()
{
   timestart=GetTickCount();
   for (int i=0;i<N;i++) 
   {  
   PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                        ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
   PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                       ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
   TDIHigh = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                      RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, UseAlerts, 1, 0);
   TDILow = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                     RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 3, 0);
   RSIPriceLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                           RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 4, 0);
   TradeSignalLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                              RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 5, 0);
   }
   timestop=GetTickCount();
   //---
   Comment(" Calculation ",N," times was =  ",timestop-timestart," millisec \n",
           " One iteration was = ",(timestop-timestart)/(N-1)," millisec");
   return(0);
}
//---
File:
testing_1.zip  4 kb
 
artmedia70:

E dov'era la linea dell'indicatore alla chiusura della vendita?

Tutto è come nello screenshot. Il canale non ha avuto il tempo di ridisegnare.
 
paladin80, il tuo script ha spento il mio computer due volte!