コーディングの方法は? - ページ 166 1...159160161162163164165166167168169170171172173...347 新しいコメント jan100 2009.03.19 17:35 #1651 ご回答ありがとうございます。 が、これってポジションクローズ時にスリッページがあった場合、機能しないんですよね? chazzmoney 2009.03.19 17:39 #1652 codersview: こんにちは、皆さん。RSIとMAのEAで問題が発生したのですが・・・。 インジケータは正常に動作しているのですが...それをEAに変換したいだけなのですが...。 いくつかのことを試してみました。IndicatorCounted()がEAで動作しないので、forループの値をハードコードしてみました(bar=0; bar<15; bar++)、私は正しいRSIを得ていましたが、SMAは正しい値を与えません...。 SMAがRSIと交差するコードを添付します。 このインディケータをEAに変換するために、どなたか助けていただけませんか? *************************************************************************************************************************************** #property indicator_separate_window(プロパティ インジケーターセパレートウィンドウ #property indicator_buffers 2(プロパティ インジケータバッファ2 #property indicator_color1 LawnGreen (インジケータカラー1) #property indicator_color2 DarkBlue (インジケータカラー2 ダークブルー) double ExtMapBuffer1[]; double ExtMapBuffer2[]です。 int init() { IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); SetIndexStyle(0,DRAW_LINE))。 SetIndexBuffer(0,ExtMapBuffer1)。 SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(1,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(1,ExtMapBuffer2)を設定します。 return(0); } int deinit() { return(0); } int start() { int bar, limit; int counted_bars=IndicatorCounted(); if(counted_bars<0)リターン(-1); if(counted_bars>0) counted_bars--; limit=Bars-IndicatorCounted()。 for(bar=0; bar<limit; bar++) ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar); for(bar=0; bar<limit; bar++) ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar)。 return(0); } *************************************************************************************************************************************** ありがとうございます&よろしくお願いします。 ガネーシュ Ganesh, バーを時間順に並べてみてください。 for(bar=0; bar<limit; bar++) の代わりに for(bar=limit-1; bar>=0; bar--)を使ってください。 チャズモニー 削除済み 2009.03.19 18:02 #1653 こんにちは 迅速な対応ありがとうございました...試してみたのですが、特に違いはありませんでした... ループの中でBarsを使うと、すべてのバーの値を計算しなければならず、遅延が発生する可能性があります。また、SMAの値もゼロになります。 インディケータではIndicatorCounted()を使って新しいバーに対してのみRSIとEMAを計算していますが、EAではそれを使うことができません。 問題の正確なポイントは、2番目のループとiMAOnArrayの値です。 最初のforループはハードコードしても完全に動作します。 Roger09 2009.03.19 18:18 #1654 jan100: ご返答ありがとうございます。しかし、これってポジションクローズ時にスリッページがあった場合は使えないんですよね? ブローカーによっては、コメント欄に[sl]や[tp]と書いているところもあります。それを利用することもできます。 jan100 2009.03.19 18:40 #1655 ありがとうございます、やってみます。 最後に閉じた注文を正しいマジックナンバーで選択することは可能ですか? Roger09 2009.03.19 20:07 #1656 jan100: ありがとうございました。 履歴リストで見つけた場合はクローズド・オーダー、トータル・リストで見つけた場合はオープン・オーダーです。 削除済み 2009.03.20 22:00 #1657 Eaコードのリクエスト新しいポジションを持つときに前の注文を閉じる こんにちは、私は新しいポジションが開かれたときに、自動的に前の順序が閉じられるようにコードを要求したいと思います。 例 買いの注文が開始されると、前の注文の売りが閉じられます。 売り注文が開始されると、前の注文の買いが閉じられます。 OrderCloseBy()というコードを見つけたのですが、このコードをどこに書けばいいのかよくわかりません。 感謝 削除済み 2009.03.21 05:56 #1658 darkkiller: 新しいポジションがオープンされると、自動的に前のオーダーがクローズされるようなコードをリクエストしたいのですが、テイクプロフィットやトレーリングを使用したくないという意味です。例 買いの注文が開始されると、前の注文の売りが終了します。 売りの注文が開いたら、前の買いの注文を閉じる OrderCloseBy()というコードを見つけたのですが、このコードをどこに書けばいいのかわかりません。 ありがとうございます。 問題解決 OrderSend BUYの後に置く{ OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // ポジションクローズ } 売りのオーダーを送信した後に置く { オーダークローズ(OrderTicket(),OrderLots(),Ask,3,Violet); // クローズポジション } その他のコードはForexFactoryから入手したものです(Fulltime247,magnumfreak)。 extern int MAGICTerminal=101;extern double LOTSize=0.10; extern string ORDERComment="注文コメントテキスト"; //TOTAL カウント... int btotal=0; int stotal=0; int ticket=0; double closelots=0; bool xbool; for( int cnt=OrdersTotal()-1;cnt>=0;cnt--) { xbool=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){btotal++; ticket=OrderTicket(); closelots=OrderLots();}; orderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol() if(OrderType()==OP_SELL && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){stotal++; ticket=OrderTicket(); closelots=OrderLots();}; }/ }/ } END TOTAL ORDER? }// END TOTAL count... if(WHATEVER YOUR CONDITION FOR BUY) { if(btotal>0){OrderClose(ticket,closelots,Bid,3,CLR_NONE);}; } {OrderClose(ticket,closelots,Bid,3,CLR_NONE) ticket=OrderSend(Symbol(),OP_BUY,LOTSize,Ask,3,0,0,ORDERComment,MAGICTerminal,0,Magenta).を送信します。 } if(WHATEVER YOUR CONDITION FOR A SELL) { if(stotal>0){OrderClose(ticket,closelots,Ask,3,CLR_NONE);}. ticket=OrderSend(Symbol(),OP_SELL,LOTSize,Bid,3,0,0,ORDERComment,MAGICTerminal,0,Lime) { if(stotal>0) { OrderClose(ticket,closelots,Ask,3,CLR_NONE);}; } Guilhermesalgado 2009.03.23 05:47 #1659 darvasboxes 2009.03.23 10:59 #1660 MT4初心者です。 shortMAがlongMAを越えてから何本目のバーかを 計算したいのですが、どなたかこの関数をコーディングする方法をご存知でしょうか? よろしくお願いします。 1...159160161162163164165166167168169170171172173...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ご回答ありがとうございます。
が、これってポジションクローズ時にスリッページがあった場合、機能しないんですよね?
こんにちは、皆さん。
RSIとMAのEAで問題が発生したのですが・・・。
インジケータは正常に動作しているのですが...それをEAに変換したいだけなのですが...。
いくつかのことを試してみました。IndicatorCounted()がEAで動作しないので、forループの値をハードコードしてみました(bar=0; bar<15; bar++)、私は正しいRSIを得ていましたが、SMAは正しい値を与えません...。
SMAがRSIと交差するコードを添付します。
このインディケータをEAに変換するために、どなたか助けていただけませんか?
***************************************************************************************************************************************
#property indicator_separate_window(プロパティ インジケーターセパレートウィンドウ
#property indicator_buffers 2(プロパティ インジケータバッファ2
#property indicator_color1 LawnGreen (インジケータカラー1)
#property indicator_color2 DarkBlue (インジケータカラー2 ダークブルー)
double ExtMapBuffer1[];
double ExtMapBuffer2[]です。
int init()
{
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
SetIndexStyle(0,DRAW_LINE))。
SetIndexBuffer(0,ExtMapBuffer1)。
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(1,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(1,ExtMapBuffer2)を設定します。
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int bar, limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0)リターン(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-IndicatorCounted()。
for(bar=0; bar<limit; bar++)
ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar);
for(bar=0; bar<limit; bar++)
ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar)。
return(0);
}
***************************************************************************************************************************************
ありがとうございます&よろしくお願いします。
ガネーシュGanesh,
バーを時間順に並べてみてください。
for(bar=0; bar<limit; bar++) の代わりに
for(bar=limit-1; bar>=0; bar--)を使ってください。
チャズモニー
こんにちは
迅速な対応ありがとうございました...試してみたのですが、特に違いはありませんでした...
ループの中でBarsを使うと、すべてのバーの値を計算しなければならず、遅延が発生する可能性があります。また、SMAの値もゼロになります。
インディケータではIndicatorCounted()を使って新しいバーに対してのみRSIとEMAを計算していますが、EAではそれを使うことができません。
問題の正確なポイントは、2番目のループとiMAOnArrayの値です。
最初のforループはハードコードしても完全に動作します。
ご返答ありがとうございます。しかし、これってポジションクローズ時にスリッページがあった場合は使えないんですよね?
ブローカーによっては、コメント欄に[sl]や[tp]と書いているところもあります。それを利用することもできます。
ありがとうございます、やってみます。
最後に閉じた注文を正しいマジックナンバーで選択することは可能ですか?
ありがとうございました。
履歴リストで見つけた場合はクローズド・オーダー、トータル・リストで見つけた場合はオープン・オーダーです。
Eaコードのリクエスト新しいポジションを持つときに前の注文を閉じる
こんにちは、私は新しいポジションが開かれたときに、自動的に前の順序が閉じられるようにコードを要求したいと思います。
例
買いの注文が開始されると、前の注文の売りが閉じられます。
売り注文が開始されると、前の注文の買いが閉じられます。
OrderCloseBy()というコードを見つけたのですが、このコードをどこに書けばいいのかよくわかりません。
感謝
新しいポジションがオープンされると、自動的に前のオーダーがクローズされるようなコードをリクエストしたいのですが、テイクプロフィットやトレーリングを使用したくないという意味です。
例
買いの注文が開始されると、前の注文の売りが終了します。
売りの注文が開いたら、前の買いの注文を閉じる
OrderCloseBy()というコードを見つけたのですが、このコードをどこに書けばいいのかわかりません。
ありがとうございます。問題解決
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // ポジションクローズ
}
売りのオーダーを送信した後に置く
{
オーダークローズ(OrderTicket(),OrderLots(),Ask,3,Violet); // クローズポジション
}その他のコードはForexFactoryから入手したものです(Fulltime247,magnumfreak)。
extern double LOTSize=0.10;
extern string ORDERComment="注文コメントテキスト";
//TOTAL カウント...
int btotal=0; int stotal=0; int ticket=0; double closelots=0; bool xbool;
for( int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
xbool=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){btotal++; ticket=OrderTicket(); closelots=OrderLots();}; orderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()
if(OrderType()==OP_SELL && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){stotal++; ticket=OrderTicket(); closelots=OrderLots();}; }/ }/ } END TOTAL ORDER?
}// END TOTAL count...
if(WHATEVER YOUR CONDITION FOR BUY)
{
if(btotal>0){OrderClose(ticket,closelots,Bid,3,CLR_NONE);}; } {OrderClose(ticket,closelots,Bid,3,CLR_NONE)
ticket=OrderSend(Symbol(),OP_BUY,LOTSize,Ask,3,0,0,ORDERComment,MAGICTerminal,0,Magenta).を送信します。
}
if(WHATEVER YOUR CONDITION FOR A SELL)
{
if(stotal>0){OrderClose(ticket,closelots,Ask,3,CLR_NONE);}.
ticket=OrderSend(Symbol(),OP_SELL,LOTSize,Bid,3,0,0,ORDERComment,MAGICTerminal,0,Lime) { if(stotal>0) { OrderClose(ticket,closelots,Ask,3,CLR_NONE);};
}MT4初心者です。
shortMAがlongMAを越えてから何本目のバーかを 計算したいのですが、どなたかこの関数をコーディングする方法をご存知でしょうか?
よろしくお願いします。