Fracctal Break Out-Stuck - página 6

 

primeiro sobre esse suporte

veja isto

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

Acho que você não pode explicar o que eu apontei aqui....

 

sobre os fractals...... o que este teste está fazendo ???

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

Faça o mesmo e você verá que barra você tem que escolher para obter a barra fractal direita

.

Temos os fractais sempre no mesmo bar ????

 

Eu vejo sobre o:

Seria impossível entrar neste circuito se não houvesse comércio. Preciso codificar uma seção de Contabilidade de Ordens diferente

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

 
deVries:

sobre os fractals...... o que este teste está fazendo ???

Faça o mesmo e você verá que barra você tem que escolher para obter a barra fractal direita

.

Temos os fractais sempre no mesmo bar ????


Sim, está sempre na mesma barra, não importa o fractal para cima ou fractal para baixo....

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

Seu códigoFractal_Buffer= 0 ALLWAYS 0

O teste que fiz mostrou que nunca houve um fractal para encontrar no Bar 0

FAÇA O TESTE........ APRENDA

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

Sinto muito por estar fazendo um trabalho tão ruim ao comunicar meu achado com o deVries.


Eu fiz o teste e sim, nunca há um fractal no bar 0.

Eu vejo o que você está fazendo, você quer que eu use para(loop) encontrar o y para usar no lugar de Fractal_Buffer, porque ele não deve ser sempre definido =0.

 
ZacharyRC:

Sinto muito por estar fazendo um trabalho tão ruim ao comunicar meu achado com o deVries.


Eu fiz o teste e sim, nunca há um fractal no bar 0.

Eu vejo o que você está fazendo, você quer que eu use para(loop) encontrar o y para usar no lugar de Fractal_Buffer, porque ele não deve ser sempre definido =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);
 }

 

O que estou lutando para entender sobre a codificação, é que a EA ainda estava fazendo negócios corretos com o outro código fractal, o que estava incorreto.

Além disso, ao mover a parada uma vez, também não aconteceu quando eu tirei o filtro de tempo, o que é incorreto.


Atualmente estou trabalhando na minha contabilidade de pedidos... mas o livro torna difícil para muitas destas coisas levar a criatividade.


Obrigado por sua grande paciência!

 
AHHHH Eu não posso mover a parada por causa dessa hahaha Sou muito lento
int total = OrdersTotal();
if(total<1)
{


Razão: