どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 90

 
artmedia70:

まだ、エラーは調べていません。

レッドクロスがあるところでSellを閉じるには、現在のバーで確認する必要があります。Ask<= close level && Open[0]>close levelの場合。


何か全然動かない A 売りの取引で、if(Ask<=PriceLow && Open[0]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); が全く決済されないというコードです。


迅速な連絡のためのトピックに興味を持っている場合私スカイプalexey1979621

 
alexey1979621:

何かがうまくいかない OrderClose(OrderTicket(),OrderLots(),Ask,3,White); if(Ask<=PriceLow && Open[0]>PriceLow); では全くクローズしない。


私との速いコミュニケーションのためのトピックに興味があれば skype alexey1979621


 if(Ask<=PriceLow && High[1]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
 
artmedia70:


うまくいかなかった。多分、この if(Volume[0]>1) というのが返ってくるのでしょう。
 
alexey1979621:

初値で テスト?

ダニが原因

 
全てのダニを対象にしたテスト
artmedia70:

初値でテスト?

ダニが原因


全てのダニを対象にしたテスト
 
alexey1979621:
全てのダニを対象としたテスト

また、売りのクローズ時の指標線は どこにあったのでしょうか?

 
alexey1979621:

修正しました。上のスクリーンショットと同じ方法で取引を終了しましたが、赤い十字架があるはずです。

ExtremeTMAがオーバードローなのは同意しますが、エントリーポイントの検索には影響しないのでしょう、ここでのメインはフィルターです。TDIインジケーターを使用しました。作ったものを添付します(私は手が器用ではないので、このEAはきちんと処理する必要があります)。ただ1点、1年間テスターで5時間くらいかかるのが難点です(どこかで1つミスがあったようです)。エラーチェックが困難でなければ

次のような方法で注文を開いてみてください。

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   //----
   if (OrdersTotal()>0)
   {  for (int i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()!=Symbol())   continue;
            if (OrderMagicNumber()!=Magic) continue;
            {  if(OrderType()==OP_BUY)  buys++;
               if(OrderType()==OP_SELL) sells++;
            }
   }  }  }
   //---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

Magic=124としたのが目を引きますが、コードではすぐに124となります。Slippageと同じで、OrderSendと OrderCloseは3(スリー)です。

 
alexey1979621:

修正しました。上のスクリーンショットと同じ方法で取引を終了しましたが、赤い十字架があるはずです。

ExtremeTMAがオーバードローなのは同意しますが、エントリーポイントの検索には影響しないのでしょう、ここでのメインはフィルターです。TDIインジケーターを使用しました。私は手が器用ではないので、Expert Advisorは良いプロジェクトだと思います)。ただ1点、1年間テスターで5時間くらいかかる のが難点です(どこかで1つミスがあったようです)。エラー探しが苦にならないなら。

カスタムインジケータの計算が重いため、EAの速度が低下している可能性があります。計算の厳しさを確認したい場合は、取引するチャート上で以下のスクリプトを実行してください。長い間コメントがない場合は、Nを100000またはそれ以下に減らしてください。1回の繰り返しで何ミリ秒かかるか見てみましょう。

//---
int    N=1000000;
//---
double PriceHigh, PriceLow, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine;
int    timestart, timestop;
//---
string TimeFrame         = "current time frame";
int    HalfLength        = 56;
int    Price             = PRICE_CLOSE;
double ATRMultiplier     = 2.0;
int    ATRPeriod         = 100;
bool   Interpolate       = true;
double TrendThreshold    = 0.5;
bool   Distances         = false;
//---
int RSI_Period           = 13;         //8-25
int RSI_Price            = MODE_CLOSE;           //0-6
int Volatility_Band      = 34;    //20-40
int RSI_Price_Line       = 2;      
int RSI_Price_Type       = MODE_SMA;      //0-3
int Trade_Signal_Line    = 7;   
int Trade_Signal_Type    = MODE_SMA;   //0-3
bool UseAlerts           = false;
//===============================================
int start()
{
   timestart=GetTickCount();
   for (int i=0;i<N;i++) 
   {  
   PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                        ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
   PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                       ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
   TDIHigh = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                      RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, UseAlerts, 1, 0);
   TDILow = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                     RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 3, 0);
   RSIPriceLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                           RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 4, 0);
   TradeSignalLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                              RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 5, 0);
   }
   timestop=GetTickCount();
   //---
   Comment(" Calculation ",N," times was =  ",timestop-timestart," millisec \n",
           " One iteration was = ",(timestop-timestart)/(N-1)," millisec");
   return(0);
}
//---
ファイル:
testing_1.zip  4 kb
 
artmedia70:

そして、売りの終値の指標線はどこにあったのでしょうか?

全てはスクリーンショットの通りです。チャンネルは再描画する暇もなかった。
 
paladin80、あなたのスクリプトは私のコンピュータを2回シャットダウンしました!