[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 48

 
TarasBY:
検討」と「DC」の話ですか!?;)

DCとは関係ない。
 

私が書いたかなり素朴なExpert Advisorで遊んでいます。しかし、私は自分の専門家に、市場に参入するためのシグナルを一つではなく、いくつか加えることにした。しかし、私は市場に入るために、各シグナルに対して 1つの注文だけが 欲しいのです。

本件は、以下の通りです。マジックでオーダーを区切ることを考案しました。注文の検索はこのようになります。

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int magic)
{
  int t;                                                 // Количество открытых позиции (buy's + sell's)
  int total = OrdersTotal() - 1;
  
  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() == magic && OrderSymbol() == Symbol())
      {
        t++;
      }
  }
  
  return(t);
}

次に...シグナルの種類ごとにMagicで注文を出す必要があります。例えば、営業の場合、以前はこんな感じでした。

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
  ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,magic,0,Red);
    return(true);
  
  return(false);
}

このとき、switch 演算子を使うことにしたのですが、この場合、この演算子を使うのは妥当でしょうか?

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
    switch(maState)
  {
    case 4:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic6,0,Red); break;
    case 5:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic25,0,Red); break;
    case 6:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic150,0,Red); break;
    case 7:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic250,0,Red); break;
    default:   return(false);
  }
    return(true);
}

そして、取引機能はこんな感じでした。

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(int signal)
{
  if(signal == SIGNAL_BUY && FindOrders() == 0)
    if(!OpenBuy())
    return(false);
  
  if(signal == SIGNAL_SELL && FindOrders() == 0)
    if(!OpenSell())
    return(false);
    
  return(true);
}

こちらもスイッチ オペレータで実装したほうがいいのでしょうか?FindOrders() 関数にもMagicを正式なパラメータとして 渡そうと思ったのですが、どうしたらいいのか・・・。

 
こんにちは。クロスレート、例えばGBPCHFで1ロットの注文を出し、50pipsのストップをかけた場合の損失可能性を計算できませんか?私の知る限り、ピップ値は基準通貨に 依存しており、今後どのように表示されるかは未知数です。
 

GBPCHGの 1pipの価値は(私の記憶違いでなければ)1ロットで8ドルです。したがって、価格が不利になりストップロスが発動された場合、約50ドル*8=-400 ドルの損失が計上されることになります。

さらにasc-bidスプレッド(6-8pips)の損失も加算しなければならない...。
 
だから、その都度、原価が変わる
 

MT4について質問です。私はかなり長い間(数日間)EAをテストし、最適化してきました。

すべて順調でした。そして、突然、EAを実行すると、すべてのバーでエントリーを表示し、すぐに終了するようになりました。要するに、ストラテジーではなく、地獄の沙汰も金次第なのです

おそらくどこかで、何か設定が間違っていたのでしょう。どこに、何があるのだろう?助けてplz....

 
Caesar34:
こんにちはMAやEMAの周期をマイナス値にすることは、設定上できないのですが、どうしたらいいか教えてください...。MT4では?
スパム?
 
Caesar34:


いやだーーーー
では、なぜ1つの質問で2つのスレッドに投稿するのでしょうか?
 

iLow クエリは、グラフが小数点以下5桁の値であるにもかかわらず、小数点以下4桁の値を返す。

このため、最初のmql4プログラムの開発が止まっています。 何が問題なのか、教えていただけませんか?それとも、こうあるべきなのでしょうか?

 
PolarsLynx:

iLow クエリは、グラフが小数点以下5桁の値であるにもかかわらず、小数点以下4桁の値を返す。

このため、最初のmql4プログラムの開発が止まっています。 何が問題なのか、教えていただけませんか?それとも、こうあるべきなのでしょうか?

コードはどこにあるのですか?