Fractal Break Out-Stuck - page 6

 

d'abord sur ce support

voyez ceci

 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********************

Je ne pense pas que vous puissiez expliquer ce que j'ai indiqué ici.....

 

à propos des fractales...... que fait ce test ? ??

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

Faites la même chose et vous verrez quelle barre vous devez choisir pour obtenir la bonne barre de fractales.

.

Les fractales sont-elles toujours à la même barre ?

 

Je vois pour le :

Il serait impossible d'entrer dans cette boucle s'il n'y a pas de transaction en cours. J'ai besoin de coder une section différente de comptabilité des ordres.

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

 
deVries:

à propos des fractales...... que fait ce test ? ??

Faites la même chose et vous verrez quelle barre vous devez choisir pour obtenir la bonne barre de fractales.

.

Les fractales sont-elles toujours à la même barre ? ??


Oui, c'est toujours la même barre, peu importe que les fractales soient en hausse ou en baisse....

 
//---------------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);

Votre codeFractal_Buffer= 0 TOUJOURS 0

Le test que j'ai donné a montré qu'il n'y avait jamais une fractale à trouver à Bar 0

FAITES LE TEST........ APPRENDRE

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

Je suis désolé d'avoir si mal communiqué ma découverte deVries.


J'ai fait le test et oui, il n'y a jamais de fractale à la barre 0.

Je vois ce que vous faites, vous voulez que j'utilise for(loop) pour trouver le y à utiliser à la place de Fractal_Buffer, parce qu'il ne devrait pas toujours être mis =0.

 
ZacharyRC:

Je suis désolé d'avoir si mal communiqué ma découverte deVries.


J'ai fait le test et oui, il n'y a jamais de fractale à la barre 0.

Je vois ce que vous faites, vous voulez que j'utilise for(loop) pour trouver le y à utiliser à la place de Fractal_Buffer, parce qu'il ne devrait pas toujours être mis =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);
 }

 

Ce que j'ai du mal à comprendre dans le codage, c'est que l'EA prenait toujours des transactions correctes avec l'autre code fractal, qui était incorrect.

De même, déplacer le stop une fois ne s'est pas produit lorsque j'ai retiré le filtre temporel, ce qui est incorrect également.


Je travaille actuellement sur ma comptabilité des ordres... mais le livre rend difficile la créativité pour beaucoup de ces choses.


Merci pour votre grande patience !

 
AHHHHH je ne peux pas bouger le stop à cause de ça hahaha je suis très lent
int total = OrdersTotal();
if(total<1)
{