フラクタルブレイクアウトスタック - ページ 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);
     } 

同じことをして、あなたは正しいfractalbarを取得するために選択する必要がありますどのようなバーが表示されます。

.

我々は、同じバーで常にフラクタルを持っているのだろうか?

 

については、なるほどと思いました。

取引がなければこのループに入ることは不可能でしょう。別の注文会計セクションをコーディングする必要があります。

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

 
deVries:

フラクタルについて......このテストは何をやっているのですか?

同じことをして、あなたは正しいfractalbarを取得するために選択する必要がありますどのようなバーが表示されます。

.

我々は、同じバーで常にフラクタルを持っていますか?


はい、それは常に同じバーで、関係なく、フラクタルアップ またはフラクタルダウンです....

 
//---------------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 ALLWAYS 0

私が行ったテストでは、Bar 0 で見つかるフラクタルは決してありませんでした。

テストをしてみてください......。

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

私の発見を伝えるのが下手で申し訳ありません。


テストしてみましたが、たしかにバー0にはフラクタルは 存在しません。

Fractal_Buffer の代わりに for(loop) を使って y を求めろということですね。

 
ZacharyRC:

私の発見を伝えるのが下手で申し訳ありません。


テストしてみましたが、たしかにバー0にはフラクタルは存在しません。

Fractal_Buffer の代わりに for(loop) を使って y を求めろということですね。




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

 

コーディングについて理解するのに苦労しているのは、EAが他のフラクタルコードでも 正しいトレードをしていたことで、これは間違っています。

また、ストップを一度動かしても、タイムフィルターを外すと起こらなかったのですが、これも不正確なのでしょうか。


私は現在、私の注文会計に取り組んでいます...しかし、本は、これらのものの多くは、創造性を取るために困難になります。


ご無理をお願いします。

 
あ~あ、これのせいでストップが動かせないよ、あ~あ、僕は鈍感なんだ。
int total = OrdersTotal();
if(total<1)
{