[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 500

 

プログラミングの専門家でない私に教えてください。

これって、注文を開くときに履歴を見るのか見ないのかどっちなんだ?

extern int dDay;
//extern bool fl;

int init()
  {
      return(0);
  }

int deinit()
  {
      return(0);
  }

int start()
  {
      double MA2,MA3;
      double Fr,Fr1;
      double SAR;
      double prof;
      int total,cnt;
      
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,0);
      Fr1 = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);
      
      //SAR = iSAR(NULL,0,0.2,2,0);
      
      if((Hour() == 22) && (OrdersTotal() == 0) && (dDay != Day()))
      {
         //if(Open[0] > MA) // BUY
         if(MA3 < MA2)
         //if(SAR < Open[0])
         {
            OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
            //fl = true;
         }
         //if(Open[0] < MA) // SELL
         if(MA3 > MA2)
         //if(SAR > Open[0])
         {
            OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
            //fl = true;
         }
      
         dDay = Day();
      }
      
      /*if((Hour() == 8) && (OrdersTotal() == 1) && fl)
      {
         fl = false;
         if(OrdersTotal() != 0)
         {
            total = OrdersTotal();
            for(cnt=0;cnt<total;cnt++)
            {  
               OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);         
               prof = OrderProfit() / 10;
               if(prof <= -10)
               {
                  if(OrderType()==OP_BUY)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
                     OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
                  }
                  if(OrderType()==OP_SELL)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
                     OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
                  }
               }
            }
         }
      }*/
  
      
      if(OrdersTotal() != 0)
      {
         total = OrdersTotal();
         for(cnt=0;cnt<total;cnt++)
         {  
            OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);                     
            prof = OrderProfit() / 10;
            if(prof >= 4)
            {
               if(OrderType()==OP_BUY)
               {
                  OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
               }
               if(OrderType()==OP_SELL)
               {
                  OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
               }
            }
         }
      }

      return(0);
  }
 
baykanur:

プログラミングのことをよく知らないプログラマーに教えてください。

注文を開始するときに履歴を見るのですか?



1)コードを挿入 するときはSRCタグを使用する。

2)コメントアウトされたものを削除する。

3) 何が見たいのか、何が矛盾しているのかを教えてください。

 
ilunga:

1) コードを挿入するときはSRCタグを使用する。

2)コメントアウトされたものを削除する

3) 何が見たいのか、何が矛盾しているのかを教えてください。

挿入済みsrc

コメントアウトされているのは?

テスターの収益性の高い案件の数にズレがあるため、質問させていただいた次第です。

 

インジケーターの値によってチャートにレベルを描く方法を別ウィンドウで教えて欲しいです。例えば、MACDがレベル0を下から上へクロスした場合、クロスしたバーのLowに応じたラインがチャート上に描か れる。MACDが上から下へクロスした場合、それに応じてHighのラインが引かれます。何か書いて、エラーもなくコンパイルされたのに、何も起こらない。助けてください。

#property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_color1  Blue

double    Buffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Buffer);

   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   double level;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++)
      
      double    macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
      double    macd1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1);
      
      if (macd > 0 && macd1 < 0)
      {
      level = iLow("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iLow[i]?
      Buffer[i]=level;
      }
      else if (macd < 0 && macd1 > 0)
      {
      level = iHigh("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iHigh[i]?
      Buffer[i]=level;
      }
   return(0);
  }
 
baykanur:

挿入済みsrc

何がコメントされているのかわかりません

テスターで利益が出ているトレードの数にばらつきがある

は、常に2つのオブジェクトが比較されます。

テスターは、同じ期間のデモと一致しないのでしょうか?例えば、テスターでの広がりが違うため

 
Ichimo:

インジケーターの値によってチャートにレベルを描く方法を別ウィンドウで教えて欲しいです。例えば、MACDがレベル0を下から上へクロスした場合、クロスしたバーのLowに応じたラインがチャート上に描かれる。MACDが上から下へクロスした場合、それに応じてHighのラインが引かれます。何か書いて、エラーもなくコンパイルされたのに、何も起こらない。よろしくお願いします。

線は少なくとも2点です ;)

Buffer[i]=level;

一点だから、隣接する点はゼロだろう。だから、線はどこにも引けない。

 //Почему выскакивает ощибка если написать просто iLow[i]?
Low[i]の先頭が "i "でないため
 
Vinin:

そのカゴはどこにあるんだ?
バスケットに誘導することができる...:)
 
2つの価格の距離を3~4分割して、ただ分割するだけでなく、結果としてそれぞれの価格を知る方法はないのでしょうか?
 
sss2019:
2つの価格の距離を3~4分割して、ただ分割するだけでなく、結果としてそれぞれの価格を知る方法はないのでしょうか?
double price1;

double price2;

...

if (price1 > price2)
{
   double delta = price1 - price2;
   double level1 = price2 + delta*0.25;
   double level2 = price2 + delta*0.5;
   double level3 = price2 + delta*0.75;
}
=)
 
ilunga:

一線は少なくとも2点である ;)

これは一点で、隣接する一点はおそらくゼロである。したがって、線を引く場所がない

Low[i]の先頭が "i "でないため



そのため、前の点を作るか、線の代わりに矢印を描く必要があります。 ありがとうございます、これからも頭を悩ませてみます。