Fractal Break Out-Stuck - pagina 6

 

prima circa quella staffa

vedere questo

 int total = OrdersTotal();
if(total<1)
{

//--------------------------------------//
//------------Money Management----------//
 if (Money.Management)
   {
      if (Risk<1 || Risk>1000)
      {
         Comment("Invalid Risk Value.");
         return(0);
      }
      else
      {
         Lots=MathFloor((AccountFreeMargin()*AccountLeverage()*Risk*pips2dbl*100)/(Ask*MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_MINLOT)))*MarketInfo(Symbol(),MODE_MINLOT);
      }
   }
//------------------------------------------//
//-------------EMA SETTINGS-----------------//
double EMA=iMA(NULL,0,MA_Period,MA_Shift,MA_Type,MA_Price,0);
double BarClose;
BarClose=Bid;

//---------------------------------------------------------//
//-----------------FRACTALS--------------------------------//
double fractalU=iFractals(NULL,Fractal_TF,1,Fractal_Buffer);
double fractalD=iFractals(NULL,Fractal_TF,2,Fractal_Buffer);
Print( "This Up Fractal is",fractalU,"Down Fractal is",fractalD);

//----------------PRCOESSING BUY---------------------------//
if(BarClose>EMA && BarClose== fractalU)
{
double SLB=Bid-StopLoss*pips2dbl;
double TPB=Bid+TakeProfit*pips2dbl;
int buy= OrderSend(Symbol(),0,Lots,Ask,Slippage*pips2points,0,0);
}

if(buy>0) 
{
OrderSelect(buy,SELECT_BY_TICKET,MODE_TRADES);
OrderModify(buy,OrderOpenPrice(),SLB,TPB,0,Green);
}

//---------PROCESSING SELL---------//
if(BarClose<EMA&&BarClose==fractalD)
{
double SLS=Ask+StopLoss*pips2dbl;
double TPS=Ask-TakeProfit*pips2dbl;

int sell= OrderSend(Symbol(),1,Lots,Bid,Slippage*pips2points,0,0);
}

if (sell>0)
{
OrderSelect(sell,SELECT_BY_TICKET,MODE_TRADES);
OrderModify(sell,OrderOpenPrice(),SLS,TPB,0,Green);
}




//----------------------------------------------//
//-----------------EXITING ORDERS---------------//

for(int i=OrdersTotal()-1; i>=0;i--)          <===HOW Can be here one trade in the loop if OrdersTotal() < 1 
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)  break;

if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue;

double SL=OrderStopLoss();
bool result;
int  error;
//-----The Differnt Order types---//

if(OrderType()==OP_BUY)
{

  if(BreakEven>0)
  {
   
     if(Bid-OrderOpenPrice() >=BreakEven*pips2dbl)
     {
      
        if(OrderStopLoss() <OrderOpenPrice())
        {
         
          SL=OrderOpenPrice()+Point;
        }
     }
  }
}
                  
          

if(OrderType()==OP_SELL){

 if(BreakEven>0)
 {
  
    if(OrderOpenPrice()-Ask >= BreakEven*pips2dbl)
    {
     
       if(OrderStopLoss()>OrderOpenPrice())
       {
        
          SL=OrderOpenPrice() - Point;
    
       }
    }
  }
}


if(SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,CLR_NONE);
         if(result!=TRUE) { error=GetLastError(); Print("ModifyError = ",OrderTicket(),"   ",error);}     
}
return(0);
}//THIS IS THE BRACKET FOR ORDERS OPEN CLOSE********************

Non credo che tu possa spiegare quello che ho indicato qui....

 

riguardo ai frattali...... cosa sta facendo questo test??

   double fractalU;
   for(int y=0;fractalU < Point;y++)
     {
      fractalU=iFractals(NULL,0,1,y);
      Alert("fractalUp  y =  "+y+ " "+fractalU);
     } 

Fate lo stesso e vedrete quale barra dovete scegliere per ottenere la giusta fractalbar

.

Abbiamo i frattali sempre alla stessa barra?

 

Vedo circa il:

Sarebbe impossibile entrare in questo ciclo se non c'è nessuna operazione in corso. Ho bisogno di codificare una diversa sezione di contabilità degli ordini

for(int i=OrdersTotal()-1; i>=0;i--)          <===HOW Can be here one trade in the loop if OrdersTotal() < 1 
{

 
deVries:

riguardo ai frattali...... cosa sta facendo questo test??

Fate lo stesso e vedrete quale barra dovete scegliere per ottenere la giusta fractalbar

.

Abbiamo i frattali sempre alla stessa barra?


Sì, è sempre alla stessa barra, non importa se il frattale è al rialzo o al ribasso ....

 
//---------------FRACTAL INPUTS--------------------//
extern string Label6="===FRACTAL INPUTS===";
extern int    Fractal_Buffer=0;
extern int    Fractal_TF=0;


//--------Start Funcitons-------//
int start()
{

//-----------------FRACTALS--------------------------------//
double fractalU=iFractals(NULL,Fractal_TF,1,Fractal_Buffer);
double fractalD=iFractals(NULL,Fractal_TF,2,Fractal_Buffer);
Print( "This Up Fractal is",fractalU,"Down Fractal is",fractalD);

Il tuo codiceFractal_Buffer= 0 SEMPRE 0

Il test che ho dato mostra che non c'è mai un frattale da trovare alla barra 0

FAI IL TEST........ IMPARARE

   double fractalU;
   for(int y=0;fractalU < Point;y++)
     {
      fractalU=iFractals(NULL,0,1,y);
      Alert("fractalUp  y =  "+y+ " "+fractalU);
     } 
 

Mi dispiace che sto facendo un pessimo lavoro nel comunicare la mia scoperta deVries.


Ho eseguito il test e sì, non c'è mai un frattale alla barra 0.

Ho capito cosa stai facendo, vuoi che usi for(loop) per trovare la y da usare al posto di Fractal_Buffer, perché non dovrebbe essere sempre impostata =0.

 
ZacharyRC:

Mi dispiace che sto facendo un pessimo lavoro nel comunicare la mia scoperta deVries.


Ho eseguito il test e sì, non c'è mai un frattale alla barra 0.

Ho capito cosa stai facendo, vuoi che usi for(loop) per trovare la y da usare al posto di Fractal_Buffer, perché non dovrebbe essere sempre impostata =0.




   double fractalU;
   for(int y=0;fractalU < Point;y++)
     {
      fractalU=iFractals(NULL,0,1,y);
     } 
     
double fractalD;
for(int x=0;fractalD< Point;x++)
 {
 fractalD=iFractals(NULL,0,2,x);
 }

 

Quello che faccio fatica a capire della codifica, è che l'EA stava ancora prendendo trade corretti con l'altro codice frattale, che non era corretto.

Inoltre, spostando lo stop una volta, non è successo quando ho tolto il filtro temporale, il che non è corretto.


Attualmente sto lavorando sulla mia contabilità degli ordini... ma il libro rende difficile per molte di queste cose prendere la creatività.


Grazie per la vostra grande pazienza!

 
AHHHH non posso muovere lo stop a causa di questo hahaha Sono molto lento
int total = OrdersTotal();
if(total<1)
{