どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 619

 

どなたか、MT-4にプラグインのGetTickerHistoryをインストールし、実行しますが、ダウンロードは、Windows 7 x64で、別の方法で外部インデックスをダウンロードすることは可能ですか、提案することができます。

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

 
001:
時間指定でポジションをクローズする機能があります。

ポジションは閉じるが、各ポジションでOrderCloseエラー138が発生する

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:20 Time+iLowest_ld EURUSD.H2: OrderClose error 148 11:44:49 2000.01.10 14:20 OrderClose error 13801.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD, H1: close #1 sell 0.10 EURUSD at 1.02940 at price 2.10 EURUSD at 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.を実行。10 EURUSD at 1.02660 at price 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok.

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,

それは何でしょう?一番面白いのは、別のEAですべてが動くことです。

トレードサーバーのリターンコードの 処理ができていない。つまり、リクオートを処理せず、スリッページが3ポイント足りないだけなのです。

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

あ、あと小さいことですが。

逆ループで閉じること(そうしないと失敗する)。

for(int i=OrdersTotal()-1; i>=0; i--)

チェックは注文の種類で行う必要があり、そうでない場合は、保留中の注文も閉じようとします。

if(OrderType()>1) continue;
 
pu6ka:

SetIndexDrawBegin()という関数があります。しかし、左から右へ数えるという特殊な機能があります。とにかく、Initで、自分自身の行SetIndexDrawBegin(0, Bars-p)を設定し、これが必要なものかどうかを確認します。
インジケータは最後のバーの数を読み、それは問題ありません。私はこれらの動きがカウントされるであろうバーの数のウィンドウを作成する必要があり、各バーでウィンドウが移動し、最後の計算の最後のバーを除外し、新しいものを追加します。iMAOnArray」のスムージングのようなものですが、スムージングは平均を出力してしまうので適しませんし、私は合計が必要です。
 
artmedia70:

トレードサーバーのリターンコードの処理ができていない。つまり、リクオートを処理せず、たった3ポイントのスリッページが欠落しているのです。

あ、あと小さいことですが。

逆ループで閉じる(そうしないと失敗する)。

注文の種類でチェックする必要があります。そうしないと、保留中の注文も閉じようとします。



ありがとうございました。これから試してみます。もう1つ質問です。テスターのrequoteは 関係ありますか?私のテスターでは閉じないのですが。
 
001:

ありがとうございました。これから試してみます。もう1つ質問です。テスターのrequotaは関係ありますか?私のテスターでは閉じません。
そして、取引注文の 価格に注目する。Bid価格で決済され、Ask価格で売却されます。注文の種類を確認することができないため、価格を選択することができません - AskまたはBidのいずれか
 

こんにちは!私はいくつかのほぼ同じマルチタイムフレームのRSIインジケータをダウンロードしました。みんな同じ悩みを持っているんです。下位のタイムフレームのチャートに、ある古いタイムフレームの値でインジケータを 設定しました。Strategy Testerでは、すでに読み込まれたデータでは問題なく描画されますが、テストを開始すると描画が停止してしまいます。また、シグナルはリアルチャートに描画されますが、リアルチャートの各バーでは、指標となるラインの値が異なります。つまり、すでに読み込まれたデータのレンダリングは階段状ですが、リアルタイムモードで読み込まれたデータについてはレンダリングが異なります。リアルタイムモードの実チャートとテスターの両方で同じ階段を描くには、どのような変更が必要なのかご教示ください。

インジケーターのコードは添付ファイルのとおりです。

このインジケータのExpert Advisorはとても良いので、感謝したいです。

ファイル:
mtf_rsi.mq4  3 kb
 
こんにちは、EAで修正するとエラー1「No error but no result known」が出ます。エラー1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
インジケータが最後のバー数を読み取るようにするのは問題ありません。私はこれらの動きがカウントされ、各バーでウィンドウが移動し、最後の計算の最後のバーを除外し、新しいものを追加するバー数のウィンドウを作成する必要があります。iMAOnArray "のスムージングのようなものがあるが、スムージングは平均を出力するので適さない、私は合計が必要だ。

このインジケータをM1に投げると、新しいバーが 現れると、左のワニ線が「一掃される」。必要ですか?

ファイル:
 
Example2:
こんにちは、EAで修正するとエラー1「No error but no result known」が出ます。

ほとんどの場合、注文時にすでに規定されている旧価格で修正することになります。
 
pu6ka:

ほとんどの場合、すでに令状に規定されている旧価格を修正することになります。


ただし、if(OrderOpenPrice()!=ma2) のチェックはある。