Fractal Break Out-Stuck - страница 6

 

сначала об этом кронштейне

см. это

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

Я не думаю, что вы сможете объяснить то, что я указал здесь....

 

о фракталах...... что делает этот тест????

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

Сделайте то же самое, и вы увидите, какой бар нужно выбрать, чтобы получить правильный фракталбар

.

Всегда ли фракталы находятся на одном и том же баре?

 

Понятно:

Невозможно войти в этот цикл, если нет торговли. Мне нужно закодировать другой раздел учета ордеров.

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

 
deVries:

о фракталах...... что делает этот тест????

Сделайте то же самое, и вы увидите, какой бар нужно выбрать, чтобы получить правильный фракталбар

.

Всегда ли фракталы находятся на одном и том же баре?


Да, они всегда на одном и том же баре, независимо от того, фрактал вверх или фрактал вниз....

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

Ваш кодFractal_Buffer= 0 ВСЕГДА 0

Тест, который я дал, показал, что никогда не было фрактала, который можно было бы найти в баре 0.

СДЕЛАЙТЕ ТЕСТ........ УЗНАЙТЕ

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

Мне жаль, что я так плохо излагаю свои выводы deVries.


Я провел тест, и да, фрактал никогда не появляется на столбце 0.

Я понял, что вы делаете, вы хотите, чтобы я использовал for(loop), чтобы найти y для использования вместо Fractal_Buffer, потому что он не всегда должен быть установлен =0.

 
ZacharyRC:

Мне жаль, что я так плохо излагаю свои выводы deVries.


Я провел тест, и да, фрактал никогда не появляется на столбце 0.

Я понял, что вы делаете, вы хотите, чтобы я использовал for(loop), чтобы найти y для использования вместо Fractal_Buffer, потому что он не всегда должен быть установлен =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);
 }

 

Что я не могу понять в кодировании, так это то, что советник все еще совершал правильные сделки с другим фрактальным кодом, который был неправильным.

Кроме того, перемещение стопа один раз не произошло, когда я снял тайм-фильтр, что тоже неверно.


В настоящее время я работаю над учетом ордеров... но книга затрудняет многие из этих вещей, которые требуют творчества.


Спасибо за ваше могучее терпение!

 
AHHHH Я не могу передвинуть стоп из-за этого хахаха Я очень медленный
int total = OrdersTotal();
if(total<1)
{