リアルアカウントでのEAコンテスト - ページ 17

 

今、アカウント履歴を見てわかったこと。リアル口座で指定した利益に達した後、ポジションを閉じる 機能が実質的に機能しないこと!?テスターでは正常に動作していますが。

つまり、ほとんどの場合、収益性の高いポジションは15pipsに相当するTicrofit、つまり許容される最小のストップレベルで決済されます。

しかし、このPipswise Expert AdvisorはEURCHFで+11、EURGBPで+8のクロージングに最適化されています!

このような差(特に15と8)は、スキャルピングExpert Advisorにとって非常に敏感なものです。

なぜそうなったのか、まだわかりませんが......。他の(宇宙人の)デザインからレディファンクションを取りました。

それを梳いて改良したのです(eurofrankの場合はこのような機能です)。

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
//Функция дает команду на  закрытие  позиции при достижении профита , 
//задаваемого  параметром CloseProfit. Для корректной работы 
//этой функции необходимо наличие вспомогателной функции del(int ticket)
void CloseProfit()                                                    {
    if (OrdersTotal() > 0)                                            {
      for (int q = OrdersTotal() + 1; q >= 0; q--)                    {
         if (OrderSelect( q, SELECT_BY_POS, MODE_TRADES))              {
            if (OrderSymbol() == "EURCHF")                            {
               if (OrderMagicNumber() == Magic)                       {
                  if (OrderCloseTime() == 0)                          {
                     if (OrderType() == OP_BUY)                       {
                        RefreshRates();
                        if (Bid > OrderOpenPrice() + CloseProfit* Point) {
                           Print("ClosePozishion"); del(OrderTicket());
                        } }
                     if (OrderType() == OP_SELL)                         {
                        RefreshRates();
                        if (Ask < OrderOpenPrice() - CloseProfit* Point) {
                           Print("ClosePozishion"); del(OrderTicket());
                        }}}}}}}}}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
//Функция реализует закрытие позиций по текущей цене
void del(int ticket) {
   int Error;
   double _bid;
   for (int w = 0; w < 1; w++) {
      GetLastError();
      OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES);
      if (OrderType() == OP_BUY) {
         RefreshRates();
         _bid = MarketInfo("EURCHF", MODE_BID);
         if (!OrderClose( ticket, OrderLots(), _bid, 3, Green)) Error = GetLastError();
      }
      if (OrderType() == OP_SELL) {
         RefreshRates();
         _bid = MarketInfo("EURCHF", MODE_ASK);
         if (!OrderClose( ticket, OrderLots(), _bid, 3, Green)) Error = GetLastError();
      }
      if ( Error == 0) {  PlaySound("expert.wav");  return; }//при  нормальном закрытии  
      //  позиции, - даем сигнал "expert.wav"
      if ( Error != 0) {// если произошла ошибка закрытия - сигнал и печать .
         PlaySound("timeout.wav");
         Print("Error for Close Funtion =", Error);
      }
      while (!IsTradeAllowed()) Sleep(5000);//если торг. поток занят, - ждем 5 сек
      if ( Error == 146) while (IsTradeContextBusy()) Sleep(10000);
      //если нет соединения с сервером, ждем - 10 сек
   }
}

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
 

エラーは出ますか?

この設計は簡素化することができます

      if (OrderType() == OP_BUY) {
         RefreshRates();
         _bid = MarketInfo("EURCHF", MODE_BID);
         if (!OrderClose( ticket, OrderLots(), _bid, 3, Green)) Error = GetLastError();
      }
      if (OrderType() == OP_SELL) {
         RefreshRates();
         _bid = MarketInfo("EURCHF", MODE_ASK);
         if (!OrderClose( ticket, OrderLots(), _bid, 3, Green)) Error = GetLastError();
      }

このように

RefreshRates();
if (!OrderClose( ticket, OrderLots(),OrderClosePrice(), 3, Green)) Error = GetLastError();
 
keekkenen писал(а)>>

エラーは出ますか?

この設計は簡素化することができます

このように

エラーについては何とも言えません。このアカウントからは投資用のパスワードしかわかりません。

しかし、この証券会社で私が実際に使っている口座では、エラーが非常によく起こります。コードにエラーがあるとビープ音が鳴るので、かなりの頻度で聞いています最初は終了エラー信号が出ます。そして多くの場合、さらに1~2分後にテイクプロフィット発動のシグナルが出ます。つまり、終値機能が間違って働き、設定した終値のレベルを超えて、テイクプロフィットレベルまで突破してしまったのだ!?

デザインの簡略化については、簡略化することはできても、すべてを詳細に記述したほうが私にはわかりやすいのです。

 

このPips Expert AdvisorはEURCHFで+11、EURGBPで+8でクローズするように最適化されて います!」と書きました。

全ては簡単に説明できます。 ロングポジションを建て、法定15pipsが発動する条件を待ちます。

if (OrderType() == OP_BUY){
	RefreshRates();
    if (Bid > OrderOpenPrice() + CloseProfit* Point) {
		Print("ClosePozishion"); del(OrderTicket());
    }
}

Bidで買ってBidで決済すると、スプレッド(4pips)がなくなるので、IfaではBidではなくAskを設定する必要があります。

15pipsを獲得するために...


あと、上記は何か腑に落ちないのですが、takeprofitが15pipsなら、なぜ早めにクローズするのでしょうか?

 
keekkenen писал(а)>>

このPips Expert AdvisorはEURCHFで+11、EURGBPで+8でクローズするように最適化されて います!」と書きました。

全ては簡単に説明できます。 ロングポジションを建て、法定15pipsが発動する条件を待ちます。

Bidで買ってBidで決済すると、スプレッド(4pips)がなくなるので、IfaではBidではなくAskを設定する必要があります。

15pipsを獲得するために...

Takeprofitが15pipsの場合、なぜ早く決済する必要があるのでしょうか?

そうではありません。利益が+11pipsに達したところでポジションをクローズしたい。テイクプロフィットが+15であるのに対し、(もっと近くに置くことは不可能なので、DCのストップレベルは許容範囲=15です)。

なぜ、入札で買ったと思う?ascで買ってました。

しかし、ロングポジションは売りで決済されるのですか?- そうなんですか?

ということで、e-feeに入札されることに...。

しかし、たとえ私があなたの意見でスプレッドの大きさを失ったとしても、この事実は実機とテスターの結果の乖離を説明するものではありません !

10日間、200回の取引で、ロット=0.1で500ドル近く悪化する乖離が発生。

 
leonid553 >> :

しかし、たとえ私があなたの言うとおりにスプレッドサイズを失ったとしても、この事実は実機とテスターの結果の乖離を説明するものではないでしょう !

>> フリーズレベルもあるので、それが問題なのかもしれません。
 
TheXpert писал(а)>>

トレードのほぼ3分の1がリアルで欠落しており、利益を逃す可能性がある。あるいは、何か足りないものがあるのかもしれません。教えてください、解決します。

案件の数を整理しました。テスターでリクオートモデリングのオプションを有効にしてExpert Advisorを実行したところ、テスターとリアル口座の取引量はほぼ同じでした(合理的な範囲内)。

つまり、リクオートのせいです。案件数を強力に削減し、多くの収益性の高い案件がリアルアカウントで削られたはずです。

しかし、それでも、テストと実際の結果の違いをすべて説明できるわけではありません。

//-------------------------------------------------------------------

それで、私のExpert Advisorは「鍛えられて」、リーダーの一人になったようです...。

http://acompetition.love-craft.ru/?q=ru

 
TheXpert писал(а)>>
フリーズレベルもあるので、もしかしたら問題はそこにあるのかもしれません。

私の理解が正しければ、このコンセプトには、同時に開くポジション数の制限とロットサイズの制限が含まれています。

このファクターは関係ないと思うのですが。

Expert Advisor のアルゴリズムによると、一度に 1 つのペアの市場に 1 つ以上のポジションを持つことはできま せん。

当面の間、ロットは固定です。(0.1)

 
leonid553 >> :

私の理解が正しければ、このコンセプトには、オープンポジションの数の制限とロットサイズの制限が含まれています。

いいえ、それ以上近づくと、テイクやロットと同様に注文を変更することができないレベルです。

 
分かりやすい説明ありがとうございました。DCのホームページを見て、問題を明確にしてきます。