[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 296

 
forexnew:

描画の仕方

/

を文字列にする?

例えば、こんな感じです。

文字列path=TerminalPath()+"/logs/"+tekTime+".log"。

はエラーを出し、スラッシュ "/" を削除すると

文字列path=TerminalPath()+"logs "+tekTime+".log";

- エラーなし




こちらと こちらを お読みください。

 
ZZZEROXXX:

IsTradeAllowed()が他に何を返すか見てみようか?

どうかご協力をお願いします。最後のポイントからN本先のバーと連動した2ポイントによるトレンドを構築しようとしています。すなわち、最初のポイントと2番目のポイントの時間価格と、Nは先のバーの数で表されます(チェックボックスビーム=false)。2つ目のポイントは、現在のバー0からバー1にあり、そこから10バー先まで描画しなければならないと仮定すると、未来からバーの時間と価格をどのように計算すればよいのでしょうか。

EAをコンパイルしているときに、たまたま忙しい取引スレッドに当たってしまった場合にも、この方法は有効です。私は、リクエストに関するログからEAコメントにメッセージを表示する方法を探しています。このような質問をする人は、現実的にはあまり多くないようです。
 
PapaYozh:


こちらと こちらを お読みください。

ありがとうございました。
 

尊敬する達人たちは助けてくれないのでしょうか?

pvm117 2011.10.20 18:26

こんにちは。

ボリンジャーラインが狭い廊下に収束した後、しばらくして相場が上下に激しく動くと予想されるからです。私のExpert Advisorでは、ボリンジャーラインの状態を分析し、非常に接近(Delta pips)してきたら、下方向(下ラインのstepOpen pips下)に売り注文を保留し、相場が突然その方向に行くことを期待します。もし相場が別の方向に行ったら、この注文を削除すればいいだけだ。

extern double Delta=800.0;              // Ширина канала, которую мы считаем достаточно узкой чтобы ожидать скоро серьезного движения в одну из сторон
extern double StepOpen=150.0;           // Отступ от линии Боллинджера  для открытия отложенного ордера
extern double TP=350.0;                 // Take Profit
extern double SL=400.0;                 // Stop Loss

int start()
  {
   double T1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);  // верхняя линия Боллинджера
   double T2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); // нижняя линия Боллинджера
   if ((Ask>T1+StepOpen*Point)&&OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) OrderDelete(0); // если рынок пошел вверх – то удаляем отложенный ордер
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) return(0); // если есть ранее открытый ордер – прекращаем выполнение текущей итерации советника
   if (T1-T2<Delta*Point) {               // если линии Боллинджера сблизились ближе чем на Delta пунктов начинаем операцию открытия ордера
      double PriceOpen=NormalizeDouble(T2-StepOpen*Point,5);  // вычисляем цену открытия
      double StopLoss=NormalizeDouble(T2-StepOpen*Point+SL*Point,5); // вычисляем StopLoss
      double TakeProfit=NormalizeDouble(T2-StepOpen*Point-TP*Point,5); // вычисляем TakeProfit
      OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу
            }
   return(0);
  }
アルゴリズムの動作が不安定で、短時間に2つの注文を出すことがあり、常にOrderSendError 130とOrderSendError 138のエラーが発生し、市場が反対方向に動いた場合にオープンオーダーを削除しても全く動作しない。

ぜひ、アドバイスをお願いします。ありがとうございました。

 
pvm117:

尊敬する達人たちは助けてくれないのでしょうか?

pvm117 2011.10.20 18:26

こんにちは。

ボリンジャーラインが狭い廊下に収束した後、しばらくして相場が上下に激しく動くと予想されるからです。私のExpert Advisorでは、ボリンジャーラインの状態を分析し、非常に接近(Delta pips)してきたら、下方向(下ラインのstepOpen pips下)に売り注文を保留 し、相場が突然その方向に行くことを期待します。もし相場が別の方向に行ったら、この注文を削除すればいいだけだ。

アルゴリズムの動作が不安定で、短い間隔で2つの注文を出すことがあり、常にOrderSendError 130とOrderSendError 138のエラーが発生し、市場が反対方向に動いた場合にオープンオーダーを削除しても全く動作しない。

ぜひ、アドバイスをお願いします。ありがとうございます。

OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу

これは 、保留中の注文ではなく、成行 注文です。

したがって、その始値は異なるものでなければならず、削除(OrderDelete)することはできませんが、クローズすることはできます。

 

このスレッドを見ている目利きの皆さん、そして経験者の皆さん、こんにちは。そして、ただ、私を助けてくれる人なら誰でもいい=)

周期性を実現するための最も簡単で「正しい」方法とは?つまり、単純化すると、15分ごとに何らかのアクションを自動的に行いたいのです。

私の場合、いくつかの統計情報を含むファイルをディスクに保存しています。今では、私が望むことを実行するスクリプトがあり、それは文字通り20行のコードです。では、この20行を間隔をあけて繰り返すようにするにはどうすればよいのでしょうか。やはり、MQLにはタイマーはないのですね...。1tickごとに 何らかのチェックを行うEAを使う必要があるのでしょうか...?

皆様のご協力、ご指導をお願いいたします。)

 
こんにちは、多通貨EAの タイムフレームを設定する方法は、M_30 H_1, D_1 などによるインジケータ以外にはないのでしょうか?
 
skyjet:
こんにちは、多通貨EAのタイムフレームを設定する方法は、M_30 H_1, D_1 などによるインジケータ以外にはないのでしょうか?

何が問題なのか?
 

こんにちは。

ここで質問ですが、アッパーフレームの長い上昇トレンド で、黄色の線をモメンタム予測、白色の線をOSM予測として使用する方法を教えてください。

波のピーク間の振幅を決めるのは難しいので、次にどこを掘ればいいのかアドバイスしてください ;)


 
Sancho77:

開いている ポジションのうち、最初のものを選びます。

オープンポジションのうち、最初のオープンポジションと最後のオープンポジションの間の距離をpipsで確認するために、すべて必要です。

簡単に書き直しただけですが、もしかしたら役に立つかもしれませんよ?確認してない...

double PriceOpenFirstPos(string sy="", int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   double   r=0;
   int      i, k=OrdersTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
               if (op<0 || OrderType()==op) {
                  if (mn<0 || OrderMagicNumber()==mn) {
                     if (OrderOpenTime()<t) {
                        t=OrderOpenTime();
                        r=OrderOpenPrice();
                        }
                     }
                  }
               }
            }
         }
      }
   return(r);
}

こうしてみると...