日を改める - ページ 2

 
angevoyageur:

そんな感じでしょうか?

数ある中で唯一の解決策

何かが間違っている...私はティックデータでのみ使用することができますそれ以外の場合は、前の最高は常に= 1です。

しかし、主な問題は、ティックデータでも、時々理由もなく、前の最高値が=-1に変更されることです。

サポートありがとうございました。

先生

 
dr.house7:

ティックデータでのみ使用可能で、それ以外の場合は常に前の最高値が=-1です。

しかし、主な問題は、ティックデータでも、時々理由もなく前の最高値が=-1に変更されることです。

サポートありがとうございました。

先生

使っているコードを示していただければ、お手伝いできます。
 
angevoyageur:
使っているコードを示してくれないと、私は手助けができません。

これだけでいいのか、それともコード全体が必要なのか?

Angeのサポートに感謝します...

ドキュメント

int checkEntry()
  {
  datetime lastdealtime;
  HistorySelect(0, TimeCurrent());  
  lastdealtime = HistoryDealGetInteger(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_TIME);
  //Print("lastdealtime :",lastdealtime);
  
//--- time filter
   if(!checkTimeLimits()) return(_doNothing);

double ema1[2],
       ema2[2];
       
       //

//-- get current Spread
   int spread=int(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));

//-- Get indicator and timeserie data
  if(CopyBuffer(handle_ema1,0,0,2,ema1)           !=2  ||
  if(CopyBuffer(handle_ema2,0,0,2,ema2)           !=2  ||
                
     
     CopyHigh(_Symbol,_Period,0,2,high)!=2          || 
      CopyLow(_Symbol,_Period,0,2,low)!=2 
     
     ) return(_doNothing);
//-------
MqlDateTime currentTime; TimeCurrent(currentTime);

TouchTime=TimeCurrent();

if(ema1[1] > ema2[1] && ema1[0]< ema2[0]) 
           {
           if(TouchTime != emacross1_TouchTime) 
           {
           drawArrow1(TouchTime,ema1,"Wingdings 3",ArrowSize,"p",ArrowColor); 
           emacross1_TouchTime= TouchTime;
           
           }
        
      
          } 
int touchedline[10];
int temp = 0;
int valuearray = 0;

touchedline[0]=emacross1_TouchTime;
touchedline[1]=emacross2_TouchTime;
touchedline[2]=emacross3_TouchTime;
touchedline[3]=emacross4_TouchTime;
touchedline[4]=emacross5_TouchTime;
touchedline[5]=emacross6_TouchTime;
touchedline[6]=emacross7_TouchTime;
touchedline[7]=emacross8_TouchTime;
touchedline[8]=emacross9_TouchTime;
touchedline[9]=emacross10_TouchTime;


int highest=-1, previoushighest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         previoushighest=highest;
         highest=i;
         temp=touchedline[i];
        }
     }
     
Print("act_highest :",highest);
Print("prv_highest :",previoushighest);
 
dr.house7:

これだけでいいのか、それともコード全体が必要なのか?

Angeのサポートに感謝します...

ドキュメント

はい、私は今、 最高値がtouchline[0]で ある 場合 私の提案が 動作しない ことを理解 しました。 この場合、例えばArrayMaximum() を使うなど、他の方法を見つけなければなりません。
 
angevoyageur:
はい。私は今、 最高値がtouchline[0]で ある場合私が提案したものは 動作しない ことを理解 しました。この場合、例えばArrayMaximum() を使うなど、他の方法を見つけなければなりません。

こんにちは、アンジュ。

私はベストを尽くしましたが、これはもう少し複雑だと思います...私はこれを書いて、動作しません。

int index_max;

for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         index_max=ArrayMaximum(touchedline[i],0,WHOLE_ARRAY); // maximum in High
         temp=touchedline[i];         
        }
     }
 
dr.house7:

こんにちは、アンジュ。

私はベストを尽くしましたが、これはもう少し複雑だと思います...私はこれを書いて、動作しません。

   int highest=-1,previoushighest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         previoushighest=highest;
         highest=i;
         temp=touchedline[i];
        }
     }     
   if(previoushighest==-1) previoushighest=ArrayMaximum(touchedline,1,WHOLE_ARRAY);

   Print("act_highest :",highest);
   Print("prv_highest :",previoushighest);
テストする時間はありませんし、これがベストな解決策であるかのように装っているわけではありません。しかし、私はそれが動作するはずだと思います。
 
angevoyageur:
テストする時間はありませんし、これがベストな解決策であるかのように装ってもいません。しかし、私はそれが動作するはずだと思います。
試してみましたが、以前と現在ではほとんど同じ結果になります。
 
dr.house7:
試してみましたが、以前と現在ではほとんど同じ結果になってしまいます。
申し訳ありませんが、私は時間がありませんし、このような状態で助けようとするのは良いアイデアではありません。私は あなたの時間を 浪費して います。
 
angevoyageur:
申し訳ありませんが、私は時間がありませんし、このような状態で助けようとすることは良い考えとは言えません。私は あなたの時間を 浪費して いるのです。
とにかくありがとうございました。
 
angevoyageur:
申し訳ありませんが、私は時間がありませんし、このよう 状態で助けようとするのは良いアイデアではありません。私は あなたの時間を 無駄にして いるのです。

申し訳ありませんが、「このような状態」とはどういう意味でしょうか?

理由: