[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 289

 
IndicatorEmptyValue()以外の値がインジケータバッファ 上にあるかどうかを判断する必要があり、90% == 0の矢印の場合、あなたの矢印が存在することになります。
 

もしや山はないだろう。

int start(){
 if(Depth>Bars-1) Depth=Bars-1;
 double RVI=0;// Обратите внимание - нет нужды объявлять переменную на каждой итерации цикла!
        for(int i=1; i<Depth; i++){
                RVI = iRVI(NULL,0,ExtRVIPeriod,MODE_MAIN,i); 
                if(RVI < mini){
                        mini=RVI;
                        Alert("На свече ",i," mini = ",mini);
                }
                if(RVI > maxi){
                        maxi=RVI;
                        Alert("На свече ",i," maxi = ",maxi);
                }
        }
return(0);
}// Автору ведь нужно всего лишь небольшой период, а не все барсы :)
 
マニュアル、フォーラムの設定でタブの大きさを2~3スペースに設定してください。コードを挿入すると、括弧がどこに行くかは神のみぞ知る...。
 
作者はループの出力で最大値と最小値を取得する必要があり、EAでは冗長なゲモルより良い冗長なコードです。
 

start()関数からdeinit()関数を 呼び出すことは可能ですか?例えば、Expert Advisorを、指定した条件が満たされたときにアンロードするようにしたい。

 
FAQ:
作者はループの出力で最大値と最小値を取得する必要があり、EAでは冗長な痛みよりも良い冗長なコード。


なるほど、やりすぎで不注意にタスクを読んでしまったのかもしれませんね、長い一日でしたから、疲れがたまっているのでしょう。

作者は、ループの出力に最大と最小の値を取得する必要があります、冗長な混乱よりも良い冗長なコード。

 
skyjet:
すみません、どなたか助けてください。))
以下は、Integerの EAから、arrowインジケータを 使った作業を示すコードのスニペットです。
         double bv=iCustom(NULL,0,"MaSignalFunction",0,1);//стрелка "Вверх" в буфере №0
         double sv=iCustom(NULL,0,"MaSignalFunction",1,1);//стрелка "Вниз"  в буфере №1
         bool BuySignal=false;
         bool SellSignal=false;
            if(bv!=0 && bv!=EMPTY_VALUE){
               BuySignal=true;
            }
            if(sv!=0 && sv!=EMPTY_VALUE){
               SellSignal=true;
            }
            
            if(BuySignal || SellSignal){
               //если разрешено обратное закрытие, вызывается ф-ия закрытия встречных ордеров 
               if(CloseOnRev)fOrderCloseMarket(SellSignal,BuySignal);
               int BuyCount,SellCount;
               int Total=fMarketOrdersTotal(BuyCount,SellCount);
                  if(Total==-1){
                     return(0);
                  }
                  if(Total<MaxCount || MaxCount==-1){
                     if(BuySignal){
                        if(BuyCount<MaxBuyCount || MaxBuyCount==-1){
                           if(LastBuyTime!=iTime(NULL,TimeFrame,0)){
                              Print("BuySignal ",CommentOrder);                          
                              fOrderOpenBuy();//вызывается ф-ия открытия buy
                           }  
                        }
                     }
                     if(SellSignal){
                        if(SellCount<MaxSellCount || MaxSellCount==-1){
                           if(LastSellTime!=iTime(NULL,TimeFrame,0)){
                              Print("SellSignal ",CommentOrder);
                              fOrderOpenSell();//вызывается ф-ия открытия sell                           }
                        }
                     }
                  }
                  
            }
            
  
 
silhouette:

start()関数からdeinit()関数を呼び出すことは可能ですか?例えば、Expert Advisorを、指定した条件が満たされたときにアンロードするようにしたい。


EA起動時に初期化解除を呼び出すことはできませんが、returnを使用して停止するコマンドを与えることができます。
 
granit77:
以下は、Integerの EAから、arrowインジケータを使った作業を示すコードスニペットです。 。



本当にありがとうございました。すべてがクリアになりました。

私の理解が正しければ、インジケータ関数を作成し、Expert Advisorに記載した後、iCustomを使用してインジケータバッファに アクセスするのでしょうか?

 
silhouette:

start()関数からdeinit()関数を呼び出すことは可能ですか?例えば、Expert Advisorを、指定した条件が満たされたときにアンロードするようにしたい。


deinitを呼び出してもEAは停止しません。このコード片はあなたの助けになるでしょう。

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);