ea n7s_ao_772012 - ページ 9

 
私のトロール付きバージョンは普通に最適化されていますが・・・。
 

トロールの「ブービートロール」で引っ掛ける。先週の結果やセット内容は悪くない。ドローダウンが減少している。利益は拡大しています。

テストをしてみてください。

コード修正

void trl(){
      total= OrdersTotal(); spread = MarketInfo(Symbol(), MODE_SPREAD);
  for(  i = total - 1; i >= 0; i--) 
     { OrderSelect( i, SELECT_BY_POS, MODE_TRADES); MN=OrderMagicNumber();
       if(OrderSymbol() == Symbol() && MN>= 772012000 && MN<=772012199) 
         {  if ( MN==772012055) { sl = slx; tp = tpx* slx; mn= mnx1;}
            if ( MN==772012155) { sl = sly; tp = tpy* sly; mn= mny1;}
            if ( MN==772012011) { sl = slX; tp = tpX* slX; mn= mnX1;}
            if ( MN==772012111) { sl = slY; tp = tpY* slY; mn= mnY1;}
//Правим SL в зависимости от прибыли (от растояния в пипсах. Первый шаг = sl. ВТорой sl + sl/2 третий sl+ sl/2 + sl / 3 и т.п. 
         
           int prevticket = OrderTicket();if(OrderType() == OP_BUY) 
             {if(DayOfWeek( ) == 5 && Hour( ) >=22)  { OrderClose( prevticket,OrderLots( ) ,Bid,3,Red);} 
              if(Bid > (OrderStopLoss() + ( sl * 2  + spread) * Point)) 
                 { if( BTS()< 0) { OrderClose( prevticket,OrderLots( ) ,Bid,3,Red);} 
                   else  
                   TrailingUdavka(OrderTicket(), sl, sl, sl+ sl/2, sl/2, sl/4);}}
                   //Старый вариант
                   //{ OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point,0, 0, Blue);}}} 
           else {if(DayOfWeek( ) == 5 && Hour( ) >=22) { OrderClose( prevticket,OrderLots( ) ,Ask,3,Blue);} 
                  if(Ask < (OrderStopLoss() - ( sl * 2 + spread) * Point)) 
                     {if( BTS() > 0) 
                           { OrderClose( prevticket,OrderLots( ) ,Ask,3,Blue);} 
                     else TrailingUdavka(OrderTicket(), sl, sl, sl+ sl/2, sl/2, sl/4);}}
                     //{ OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 0, 0, Blue);}}}
          return(0);}}}
 

ボアコンストリクターそのもの

---------------

void TrailingUdavka(int ticket,int trl_dist_1,int level_1,int trl_dist_2,int level_2,int trl_dist_3)
   { 
   double newstop = 0; // новый стоплосс
   double trldist; // расстояние трейлинга (в зависимости от "пройденного" может = trl_dist_1, trl_dist_2 или trl_dist_3)

   // проверяем переданные значения
   if (( trl_dist_1<MarketInfo(Symbol(),MODE_STOPLEVEL)) || ( trl_dist_2<MarketInfo(Symbol(),MODE_STOPLEVEL)) || ( trl_dist_3<MarketInfo(Symbol(),MODE_STOPLEVEL)) || 
   ( level_1<= trl_dist_1) || ( level_2<= trl_dist_1) || ( level_2<= level_1) || ( ticket==0) || (!OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES)))
      {
      Print("Трейлинг функцией TrailingUdavka() невозможен из-за некорректности значений переданных ей аргументов.");
      return(0);
      } 
   
   // если длинная позиция (OP_BUY)
   if (OrderType()==OP_BUY)
      {
      // если профит <=trl_dist_1, то trldist=trl_dist_1, если профит>trl_dist_1 && профит<=level_1*Point ...
      if ((Bid-OrderOpenPrice())<= level_1*Point) trldist = trl_dist_1;
      if (((Bid-OrderOpenPrice())> level_1*Point) && ((Bid-OrderOpenPrice())<= level_2*Point)) trldist = trl_dist_2;
      if ((Bid-OrderOpenPrice())> level_2*Point) trldist = trl_dist_3; 
            
      // если стоплосс = 0 или меньше курса открытия, то если тек.цена (Bid) больше/равна дистанции курс_открытия+расст.трейлинга
      if ((OrderStopLoss()==0) || (OrderStopLoss()<OrderOpenPrice()))
         {
         if (Bid>(OrderOpenPrice() + trldist*Point))
         newstop = Bid -  trldist*Point;
         }

      // иначе: если текущая цена (Bid) больше/равна дистанции текущий_стоплосс+расстояние трейлинга, 
      else
         {
         if (Bid>(OrderStopLoss() + trldist*Point))
         newstop = Bid -  trldist*Point;
         }
      
      // модифицируем стоплосс
      if ( newstop>OrderStopLoss())   
      OrderModify( ticket,OrderOpenPrice(), newstop,OrderTakeProfit(),OrderExpiration());
      }
      
   // если короткая позиция (OP_SELL)
   if (OrderType()==OP_SELL)
      { 
      // если профит <=trl_dist_1, то trldist=trl_dist_1, если профит>trl_dist_1 && профит<=level_1*Point ...
      if ((OrderOpenPrice()-(Ask + MarketInfo(Symbol(),MODE_SPREAD)*Point))<= level_1*Point) trldist = trl_dist_1;
      if (((OrderOpenPrice()-(Ask + MarketInfo(Symbol(),MODE_SPREAD)*Point))> level_1*Point) && ((OrderOpenPrice()-(Ask + MarketInfo(Symbol(),MODE_SPREAD)*Point))<= level_2*Point)) trldist = trl_dist_2;
      if ((OrderOpenPrice()-(Ask + MarketInfo(Symbol(),MODE_SPREAD)*Point))> level_2*Point) trldist = trl_dist_3; 
      
      // если стоплосс = 0 или меньше курса открытия, то если тек.цена (Ask) больше/равна дистанции курс_открытия+расст.трейлинга
      if ((OrderStopLoss()==0) || (OrderStopLoss()>OrderOpenPrice()))
         {
         if (Ask<(OrderOpenPrice() - ( trldist + MarketInfo(Symbol(),MODE_SPREAD))*Point))
         newstop = Ask + trldist*Point;
         }

      // иначе: если текущая цена (Bid) больше/равна дистанции текущий_стоплосс+расстояние трейлинга, 
      else
         {
         if (Ask<(OrderStopLoss() - ( trldist + MarketInfo(Symbol(),MODE_SPREAD))*Point))
         newstop = Ask +  trldist*Point;
         }
               
       // модифицируем стоплосс
      if ( newstop>0)
         {
         if ((OrderStopLoss()==0) || (OrderStopLoss()>OrderOpenPrice()))
         OrderModify( ticket,OrderOpenPrice(), newstop,OrderTakeProfit(),OrderExpiration());
         else
            {
            if ( newstop<OrderStopLoss())   
            OrderModify( ticket,OrderOpenPrice(), newstop,OrderTakeProfit(),OrderExpiration());
            }
         }
      }      
   }
 
Casper писал(а)>>

うまくいけばいいんですけどね :-)

キャスパー 訂正してください

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, sl/4);}}。

少なくともこのように、あるいはあなたの裁量で

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, 2*sl, sl/4);}}


私は

すでに、利益を成長させて損失を削減するのが好きだと言ったので、トレーリングは慎重に扱います。
IMHOトレーリングは最善の方法ではないですが、おそらく誰かがそれを好きでしょう

私はトレーリングになったらまずフラクタルで行い、さらにマーケットからクローズアウトするだけです。
また、もう一つの知恵を尊重します。価格が長い間正しい方向に行かない場合、それは間違いなくあなたに対して行くでしょう!
皆さんに幸運と利益を!
追伸
カスパーはもっと注意を払って、「アセンブリ効果」についてと「ダミー」について覚えて

ください。
 
今週の最後の2日間は、デモでのテストが十分にできませんでした(アルパリの第五の記号は「責める」です)))。今夜0時、9台の楽器に修正・更新したソフトをインストールしました。
テストによると、この2日間は先週よりも良い結果だった。 エクイティ 750ドル。
リーダー ユーロ +$354 ケーブル +$257 フランク(意外なもの) +$176 下値円 -$90 ユーロ円 -$162 と少しカナダ -$15 残り:キウイ +$89、ポンド +$77、ユーロGBP+$59。
 
SHOOTER777 >> :

うまくいけばいいんですけどね :-)

キャスパー、訂正してください

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, sl/4);}}。

少なくともこのように、あるいは私の裁量で

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, 2*sl, sl/4);}}


私は

すでに、利益を成長させて損失をカットするのが好きだと言ったので、トレーリングは慎重に扱う。
IMHOトレーリングは最善の方法ではないが、おそらく誰かがそれを好むだろう

私はトレーリングになると、まずフラクタルで行い、さらに相場を閉じるだけです。
私はまた、もう一つの知恵を尊重し、価格が長い間正しい方向に行かない場合、それは間違いなくあなたに対して行くでしょう!
幸運と利益!
追伸
カスパーはもっと注意を払い、 "構築効果 "と "ダミーを覚えている

"。

値動きが激しいほど、引き戻される可能性が高くなります。そして、損をするような利益はない。先週のセットでは、ユーロとポンドでなんとか走りました。どちらのペアも利益は高く、ドローダウンは低い。

課題については......同感です。私のミスです。また、条件を変更する必要がありますね。そうでないと、ステップが大きくなりすぎてしまうのです。なんとなく、そうかもしれませんね。

            if(Bid > (OrderStopLoss() + ( sl * 2  + spread) * Point) || true) 
                 { if( BTS()< 0) { OrderClose( prevticket,OrderLots( ) ,Bid,3,Red);} 
                   else  
                   TrailingUdavka(OrderTicket(), sl, sl, sl+ sl/2, sl/2, sl/4);}}
                   //{ OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point,0, 0, Blue);}}} 
           else {if(DayOfWeek( ) == 5 && Hour( ) >=22) { OrderClose( prevticket,OrderLots( ) ,Ask,3,Blue);} 
                  if(Ask < (OrderStopLoss() - ( sl * 2 + spread) * Point) || true) 
                     {if( BTS() > 0) 
                           { OrderClose( prevticket,OrderLots( ) ,Ask,3,Blue);} 
                     else 
                     TrailingUdavka(OrderTicket(), sl, sl, sl+ sl/2, sl/2, sl/4);}} 
                     //{ OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 0, 0, Blue);}}}

今更ブロックをやり直すのは億劫だ。|| trueを指定して、適切なif-unitをキルしました。そうすれば、また、簡単に取り戻せるだろう。

ビルド効果」と「ケトル」については。私は以前、delphi C++やC#でかなり本格的にプログラミングをしていました。でも、それは5〜6年前のことでしょう。だから、私も失敗することがある、技術は残念ながら失われている。だから、コードを並べるんです。

ここでも開発者向けフォーラム...

 

レポートを見る限り、作者の手腕でツールはWORKINGしているようです。

そろそろリアル、いやマイクロリアルの時代かも?

 
goldtrader >> :

レポートを見る限り、作者の手腕でツールはWORKINGしているようです。

そろそろリアル、いやマイクロリアルの時代かも?

リアルに1セントが...

 
Casper >> :

本物に1セント...

スタウトを添付してもいいですか?

 
goldtrader писал(а)>>

レポートを見る限り、作者の手腕でツールはWORKINGしているようです。

そろそろリアルというか、マイクロリアルかも?

ゆっくりしていってね!!!

ブローカーが昼寝していないとEAがリアルでまともに動かない。

少なくとも、端末を常時監視できるようにしておく必要があります。

Expert Advisor は、リクオートなどの操作方法を知らない。

たくさんの商品を入れた場合、どのように状態を確認し、取引ストリームを分割するのかがわからない。

もう一つ足りないのは、ニュースリリースや急激な投機的変動の際の禁止である。

と同じバーで同じ方向に取引することを禁止しています。

障害対策がされておらず、入力パラメータの正誤チェックもされていない。

デモで入力パラメーターがリセットされたことが何度かありました。

ブローカージョークなのか、私の端末はAlpariのものなのか、それとも単なる不具合なのか、何なんでしょうね。

また、何かが足りない。