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

 
こんにちは!EAでトレーリングストップやブレイクイーブンを作る方法を教えてください!EAとは別にうまく機能するのですが、1つにまとめることができません。
 
paukas:

了解です、ありがとうございました。この条件は他にどう書けばいいのでしょうか?利益が出たときだけ、すべてを決済してほしい。
 
todem:
こんにちは!EAでトレーリングストップやブレイクイーブンを作る方法を教えてください!EAと相性が良いのですが、EAと相性が悪いのでしょうか?
//-------------------------------------------------------------------+
extern bool   Trailing       = True;
extern int    MinProfit      = 55;
extern int    TrailingStop   = 5;
extern int    TrailingStep   = 1;
//-------------------------------------------------------------------+
extern bool   LossKiller     = True;
extern int    MinProfitB     = 21;
extern int    KillLossLevel  = 16;
//-------------------------------------------------------------------+
int start()
  {
//----
   if(LossKiller) KillLoss();
   if(Trailing) TrailPositions();
//+------------------------------------------------------------------+
//|-----------------------// Trail positions //----------------------+
//+------------------------------------------------------------------+
void TrailPositions()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;
    {    
      if (OrderType() == OP_BUY && OrderMagicNumber() == Magic)  
      {
        if (Bid-OrderOpenPrice() > MinProfit*Point) 
        {
          if (OrderStopLoss() < Bid-(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
      if (OrderType() == OP_SELL && OrderMagicNumber() == Magic)  
      {
        if (OrderOpenPrice()-Ask > MinProfit*Point) 
        {
          if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
//|--------------------------// KillLoss //--------------------------+
//+------------------------------------------------------------------+
void KillLoss()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if(OrderSymbol() != Symbol()) continue;
    {    
      if(OrderType()==OP_BUY && (OrderStopLoss()<OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(Bid-OrderOpenPrice() > MinProfitB*Point) 
        {
          if(OrderStopLoss() < Bid-(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }        
      if(OrderType()==OP_SELL && (OrderStopLoss()>OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(OrderOpenPrice()-Ask > MinProfitB*Point) 
        {
          if(OrderStopLoss() > Ask+(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
 
rustein:
すべてのオープンポジションをクローズできないのですが...。

ありがとうございます。


閉じないのはどれ?

負けているのであれば、いいのですが

 
VINAR:


閉じないのはどれ?

採算が合わないなら、それはそれでいいのです

採算が合うのは1つだけ :)なぜ?ありがとうございます。

フォーラムで検索してみました。でも、よくわからない...。

 
Doberman101:

ごあいさつ

EAを書くのを手伝ってください。

謹んで申し上げます。

みんな、それぞれの立場で提案をするべきだ......。どのTSを基準にアドバイザーを必要とするかも決まっていない...。そして、なぜ「ジョバ」に行かなかったのか...。:))

コードを書く(というより理解する)のに手助けが必要なら歓迎しますが、もし...ではを仕事にする ...:)))

 
artmedia70:

みんな慌てて申し出るはずだ。それぞれが自分の手で...どのTCを基準にアドバイザーが必要なのかすら決まっていない...。そして、なぜ「ジョーブ」に行かなかったのか...。:))

コードを書く(というより理解する)のに手助けが必要なら歓迎しますが、もし...ではを仕事にする ...:)))

アーテム、全部持ってきたか?

質問者だけが別のものを必要としている。

参議院は梅と今がない。

 
rustein:

採算が合うのは1つだけ :)なぜ?ありがとうございます。

フォーラムを検索してみました。でも、解けなかった...。


AccountProfit()は、現在の口座の利益値を基準通貨で 返します。

最初に利益が出たものを決済すると、どうやらAccountProfit()は0より 小さくなるようです。

例えばこんな風に書くことができます。

void CloseAllOrders()
{
  if(AccountProfit() > 0)
    for(int i=OrdersTotal()-1;i>=0;i--)
    {
      RefreshRates();
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
        if(OrderType()== OP_BUY) 
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),10,CLR_NONE);
        if(OrderType()== OP_SELL)
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),10,CLR_NONE);
      }
    }  
    return(0);
}
 
artmedia70:

みんな慌てて申し出るはずだ。それぞれが自分の手で...どのTCを基準にアドバイザーが必要なのかすら決まっていない...。そして、なぜ「ジョーブ」に行かなかったのか...。:))

コードを書く(あるいは理解する)のに手助けが必要なら大歓迎ですが、もし ...ではを仕事にする ...:)))


なぜ、このようなネガティブな反応をするのでしょうか?大の大人が...誰もあなたに敬意を教えてくれなかったの?

デスプートはこれで終わりです。私は、年長者がどんなに "腐った "人であっても、敬意をもって接します。

 
VINAR:

アーテム、全部持ち出してるのか?

質問者だけが別のものを必要としている。

参議院は梅と今がない。


コードを書くのを手伝ってくれと頼んだら...。

EAは消耗品ではなく、今すぐ必要」というのは、どこで読んだのでしょうか?