コーディングのヘルプ - ページ 395 1...388389390391392393394395396397398399400401402...786 新しいコメント tfi_markets 2014.11.18 06:49 #3941 EAがカウンターポジションを開けない MQL Coderの皆様、こんにちは。 私のEAのバグについて質問があります。カウンタートレンドポジションを開かないようです(添付のスクリーンショット参照)。 取引は終了しているのですが、新しいトレンドの方向に沿って新しい取引を開始することができません。 // Indicator HMA NMC double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //+------------------------------------------------------------------+ //| BUY | //+------------------------------------------------------------------+ if(trendc!=trendp) { if(trendc==1) // code for buy OpenBuy(); return(0); } //+------------------------------------------------------------------+ //| SELL | //+------------------------------------------------------------------+ if(trendc==-1) // code for sell { OpenSell(); return(0); } } [/CODE] [CODE] void CheckForClose() { RefreshRates(); double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); for(int i=0;i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!= MAGIC) continue; if(OrderSymbol() != s_symbol) continue; //+-------------------------------------------------------------------------------+ //| Close BUY | //+-------------------------------------------------------------------------------+ if(trendc_c!=trendp_c) // Check trend { if(OrderType()==OP_BUY) { if(trendc_c==-1) //is buy? { bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy); if(buyClose==false) { int ErrorCode = GetLastError(); string ErrDesc = ErrorDescription(ErrorCode); string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc); if(ShowAlerts == true) Alert(ErrAlert); string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket()); Print(ErrLog); } } break; } } //+--------------------------------------------------------------------------------+ //| Close SELL | //+--------------------------------------------------------------------------------+ if(trendc_c!=trendp_c) { if(OrderType()==OP_SELL) { if(trendc_c==1) // SELL { bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell); if(sellClose == false) { ErrorCode = GetLastError(); ErrDesc = ErrorDescription(ErrorCode); ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc); if(ShowAlerts==true) Alert(ErrAlert); ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket()); Print(ErrLog); } } break; } } } } よろしくお願いします。 ファイル: robotnic-bug-not-open_new_position.jpg 45 kb Coding help MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Closing order programming question Mladen Rakic 2014.11.18 08:02 #3942 secretcode: 親愛なるムラデンこの投稿のように、添付のインジケータに「バンドを追加」することは可能でしょうか :https://www.mql5.com/en/forum/172894/page45 このインディケータはエリートセクションのものですが、バンドを追加する方法が好きです。 よろしくお願いします。 シークレットコード シークレットコード バンドを追加したバージョンはこちらです :ema_variation__filter_amp_bands_amp_mtf.ex4 ファイル: ema_bands.gif 77 kb ema_variation__filter_amp_bands_amp_mtf.ex4 38 kb secretcode 2014.11.18 08:25 #3943 mladen: secretcode バンドを追加したバージョンはこちらです :ema_variation__filter_amp_bands_amp_mtf.ex4 Mladen あなたの専門知識には本当に感謝しています。 敬具 secretcode Mladen Rakic 2014.11.18 10:00 #3944 tfi_markets: こんにちは、MQLコーダーです。私のEAのバグについて質問があります。カウンタートレンドのポジションを開くことができないようです(添付のスクリーンショットを参照)。 取引は終了しているのですが、新しく指定されたトレンドの方向に沿って新しい取引を開くことができません。 // Indicator HMA NMC double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); //+------------------------------------------------------------------+ //| BUY | //+------------------------------------------------------------------+ if(trendc!=trendp) { if(trendc==1) // code for buy OpenBuy(); return(0); } //+------------------------------------------------------------------+ //| SELL | //+------------------------------------------------------------------+ if(trendc==-1) // code for sell { OpenSell(); return(0); } } [/CODE] [CODE] void CheckForClose() { RefreshRates(); double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1); double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2); for(int i=0;i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!= MAGIC) continue; if(OrderSymbol() != s_symbol) continue; //+-------------------------------------------------------------------------------+ //| Close BUY | //+-------------------------------------------------------------------------------+ if(trendc_c!=trendp_c) // Check trend { if(OrderType()==OP_BUY) { if(trendc_c==-1) //is buy? { bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy); if(buyClose==false) { int ErrorCode = GetLastError(); string ErrDesc = ErrorDescription(ErrorCode); string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc); if(ShowAlerts == true) Alert(ErrAlert); string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket()); Print(ErrLog); } } break; } } //+--------------------------------------------------------------------------------+ //| Close SELL | //+--------------------------------------------------------------------------------+ if(trendc_c!=trendp_c) { if(OrderType()==OP_SELL) { if(trendc_c==1) // SELL { bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell); if(sellClose == false) { ErrorCode = GetLastError(); ErrDesc = ErrorDescription(ErrorCode); ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc); if(ShowAlerts==true) Alert(ErrAlert); ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket()); Print(ErrLog); } } break; } } } } よろしくお願いします。 tfi_markets 両方のブレークステートメントを1行上に移動させてみてください("}"の中に入るように)。 削除済み 2014.11.18 10:03 #3945 こんにちは、Mladenです。 このコードでどこが間違っているのか、親切に教えていただけませんか? 添付のインディケータAll Pivotsですが、前日のオープンライン、前日のクローズライン、当日のオープンラインも表示されるように作り直しました。 しかし、このインジケータは一貫性がありません。ピボットは常に正しく表示されますが、私が追加した日足オープン、前日オープン、クローズ線が表示されることはほとんどありません。 コードはピボットのコードと同じに見えるので、すべて表示されるはずで、時々表示されますが、いつも表示されるわけではありません。何か間違ったことをしたのでしょうか。 ありがとうございました。 PG オールピボット_デイリー.mq4 ファイル: allpivots_daily.mq4 7 kb Mladen Rakic 2014.11.18 10:32 #3946 pgtips: Mladenさん、こんにちは。このコードでどこが間違っているのか、親切に教えてください。 添付のインディケータAll Pivotsは、前日のオープンライン、前日のクローズライン、当日のオープンラインも表示されるように作り直しました。 しかし、このインジケータは一貫性がありません。ピボットは常に正しく表示されますが、私が追加した日足オープン、前日オープン、クローズ線が表示されることはほとんどありません。 コードはピボットのコードと同じに見えるので、すべて表示されるはずで、時々表示されますが、いつも表示されるわけではありません。何か間違ったことをしたのでしょうか。 ありがとうございました。 PG allpivots_daily.mq4 PG 問題なく動作します(作成されたオブジェクトのリストを参照してください)。価格が重なっていないかどうか確認してください(それによって、いくつかの行が見えなくなる可能性があります)。 また、ObjectDel()関数で新しく作成した行を追加することを忘れないでください。 ファイル: objects.gif 49 kb 削除済み 2014.11.18 11:03 #3947 Mladenさん、ありがとうございます!何度も確認 しましたが、「"」の中の行の名前にうるさいようで、私の期待とは違っていました。 いつもながら、お忙しい中、ありがとうございます。 PG mladen: PG 問題なく動作しています(作成されたオブジェクトのリストをご覧ください)。価格が重なっていないかチェックする(それが原因で、いくつかの線が見えなくなる可能性があります)。 Mladen Rakic 2014.11.18 14:54 #3948 pgtips: Mladenさん、ありがとうございます。何度も確認しましたが、「"」の中の行の名前にうるさいようです。いつもながら、お時間とご協力に感謝いたします。 PG オブジェクトの名前は常に一意でなければなりませんが、私が見た限りでは、あなたはそれを世話しました。 mr-roma 2014.11.18 16:18 #3949 https://www.mql5.com/en/forum/174385/page263 よろしくお願いします。 削除済み 2014.11.18 20:06 #3950 Mladenさん、ありがとうございます。 私は問題を持っており、そのことです。 私の最初の信号は、最後の販売後に購入し、私はバーが抵抗またはコードの "srUp "の上に閉じた後である必要があります。 売りも同じで、バーがサポートまたは "srDown "の下で閉じられなければなりません。 どのように私は、コード上のこれを修正することができますか? そして第二に、前に尋ねたナンバーワンだった、私は別の色で販売した後、最初の信号の買いを表示するために私のコードで修正することができますか? #property strict #プロパティ indicator_chart_window #プロパティ indicator_buffers 4 #property indicator_color1 clrLime(インジケーターカラー1)。 #property indicator_color2 clrRed (インジケータカラー2) #プロパティ indicator_color3 clrMagenta #property indicator_color4 clrCyan (インジケーターカラー4) #define BUY 1 #define SELL 2 double Buy[], Sell[], FirstBuy[], FirstSell[]; int OnInit() { SetIndexBuffer(0,FirstBuy)を設定します。 SetIndexBuffer(1,FirstSell)を設定します。 SetIndexBuffer(2,Buy)を設定します。 SetIndexBuffer(3,Sell)を設定します。 for(int i=0; i<4; i++) { {インデックススタイル(1)を設定します。 SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}を設定します。 SetIndexArrow (0,233)を設定します。 SetIndexArrow (1,234)。 SetIndexArrow (2,233).SetIndexArrow(2,233)。 SetIndexArrow (3,234)。 return(INIT_SUCCEEDED);}. void OnDeinit(const int reason) {} int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[]、const double &high[]、const double &low[]。 const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { 静的 int lastSignal=0; for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--){ FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUEです。 datetime when=Time; int w=iBarShift(NULL,PERIOD_H4, when), x=iBarShift(NULL,PERIOD_H1,時), y=iBarShift(NULL,PERIOD_M15,when)。 z=iBarShift(NULL,PERIOD_M5,when)。 double srUpH4 = iCustom(NULL,PERIOD_H4, "Support and Resistance (Barry)",0,w)。 srDownH4 = iCustom(NULL,PERIOD_H4, "Support and Resistance (Barry)",1,w)です。 MidH4 = (srUpH4+srDownH4)/2, srUpH1 = iCustom(NULL,PERIOD_H1, "Support and Resistance (Barry)",0,x)です。 srDownH1 = iCustom(NULL,PERIOD_H1, "サポートとレジスタンス(バリー)",1,x).MidH1 = (srUpH1,srDownH4) / 2, MidH1 = (srUpH1+srDownH1)/2, srUp15M = iCustom(NULL,PERIOD_M15, "Support and Resistance (Barry)",0,y)とします。 srDown15M = iCustom(NULL,PERIOD_M15, "Support and Resistance (Barry)",1,y).この場合、srDown15Mは1.0となります。 Mid15M=(srUp15M+srDown15M)/2.Mid15M=(srUp15M+srDown15M)/2, srUp5M = iCustom(NULL,PERIOD_M5, "Support and Resistance (Barry)",0,z)です。 srDown5M = iCustom(NULL,PERIOD_M5, "Support and Resistance (Barry)",1,z)です。 Mid5M = (srUp5M+srDown5M)/2, srUp = iCustom(NULL,0, "Support and Resistance (Barry)",0,i)。 srDown = iCustom(NULL,0, "Support and Resistance (Barry)",1,i).となります。 if(ClosesrUp) { // 最初のシグナル買い 買い=低ポイント; } else { 買い=EMPTY_VALUE; }。 if(Close>Mid5M && Close>srUp) { // 第2のシグナル買い 買い=Low-_Point; } else { 買い=EMPTY_VALUE; } } } else { if(Close>MidH4 && Close>Mid15M && Close<srDown) { // 1回目のシグナル 売り 売り=High+_Point; }. else { 売り=EMPTY_VALUE; } } else { 売り=High+_Point; } } 売り=EMPTY_VALUE if(Close<Mid5M && Close<srDown) { // 2回目のシグナル売り 売り=High+_Point; }. else { 売り=EMPTY_VALUE; }}。 return(rates_total);}になります。 これは、私はアラートのために持っているものです、私はそれを使用するか、代わりにアラート(t("ポップアップ用のテキスト"))を使用しなければなりませんか? void SoundAlert(datetime i, string dir) { static datetime lastAlert=0; if(lastAlert!=i)の場合{。 Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)))。 lastAlert=i;}}となります。 mladenさんありがとうございました。 ファイル: signals.png 31 kb Coding help MetaTrader 5へのアップグレードを損なわずに行うためのヘルプ 理論から実践へ 1...388389390391392393394395396397398399400401402...786 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
EAがカウンターポジションを開けない
MQL Coderの皆様、こんにちは。
私のEAのバグについて質問があります。カウンタートレンドポジションを開かないようです(添付のスクリーンショット参照)。
取引は終了しているのですが、新しいトレンドの方向に沿って新しい取引を開始することができません。
// Indicator HMA NMC
double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
//+------------------------------------------------------------------+
//| BUY |
//+------------------------------------------------------------------+
if(trendc!=trendp)
{
if(trendc==1) // code for buy
OpenBuy();
return(0);
}
//+------------------------------------------------------------------+
//| SELL |
//+------------------------------------------------------------------+
if(trendc==-1) // code for sell
{
OpenSell();
return(0);
}
}
[/CODE]
[CODE]
void CheckForClose()
{
RefreshRates();
double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
for(int i=0;i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!= MAGIC) continue;
if(OrderSymbol() != s_symbol) continue;
//+-------------------------------------------------------------------------------+
//| Close BUY |
//+-------------------------------------------------------------------------------+
if(trendc_c!=trendp_c) // Check trend
{
if(OrderType()==OP_BUY)
{
if(trendc_c==-1) //is buy?
{
bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);
if(buyClose==false)
{
int ErrorCode = GetLastError();
string ErrDesc = ErrorDescription(ErrorCode);
string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts == true) Alert(ErrAlert);
string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
//+--------------------------------------------------------------------------------+
//| Close SELL |
//+--------------------------------------------------------------------------------+
if(trendc_c!=trendp_c)
{
if(OrderType()==OP_SELL)
{
if(trendc_c==1) // SELL
{
bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);
if(sellClose == false)
{
ErrorCode = GetLastError();
ErrDesc = ErrorDescription(ErrorCode);
ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts==true) Alert(ErrAlert);
ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
}
}
よろしくお願いします。
親愛なるムラデン
この投稿のように、添付のインジケータに「バンドを追加」することは可能でしょうか :https://www.mql5.com/en/forum/172894/page45
このインディケータはエリートセクションのものですが、バンドを追加する方法が好きです。
よろしくお願いします。
シークレットコードシークレットコード
バンドを追加したバージョンはこちらです :ema_variation__filter_amp_bands_amp_mtf.ex4
secretcode バンドを追加したバージョンはこちらです :ema_variation__filter_amp_bands_amp_mtf.ex4
Mladen あなたの専門知識には本当に感謝しています。
敬具
secretcode
こんにちは、MQLコーダーです。
私のEAのバグについて質問があります。カウンタートレンドのポジションを開くことができないようです(添付のスクリーンショットを参照)。
取引は終了しているのですが、新しく指定されたトレンドの方向に沿って新しい取引を開くことができません。
// Indicator HMA NMC
double trendc = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
//+------------------------------------------------------------------+
//| BUY |
//+------------------------------------------------------------------+
if(trendc!=trendp)
{
if(trendc==1) // code for buy
OpenBuy();
return(0);
}
//+------------------------------------------------------------------+
//| SELL |
//+------------------------------------------------------------------+
if(trendc==-1) // code for sell
{
OpenSell();
return(0);
}
}
[/CODE]
[CODE]
void CheckForClose()
{
RefreshRates();
double trendc_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);
double trendp_c = iCustom(Symbol(),0,"Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);
for(int i=0;i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!= MAGIC) continue;
if(OrderSymbol() != s_symbol) continue;
//+-------------------------------------------------------------------------------+
//| Close BUY |
//+-------------------------------------------------------------------------------+
if(trendc_c!=trendp_c) // Check trend
{
if(OrderType()==OP_BUY)
{
if(trendc_c==-1) //is buy?
{
bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);
if(buyClose==false)
{
int ErrorCode = GetLastError();
string ErrDesc = ErrorDescription(ErrorCode);
string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts == true) Alert(ErrAlert);
string ErrLog=StringConcatenate("Bid: ",MarketInfo(s_symbol,MODE_BID)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
//+--------------------------------------------------------------------------------+
//| Close SELL |
//+--------------------------------------------------------------------------------+
if(trendc_c!=trendp_c)
{
if(OrderType()==OP_SELL)
{
if(trendc_c==1) // SELL
{
bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);
if(sellClose == false)
{
ErrorCode = GetLastError();
ErrDesc = ErrorDescription(ErrorCode);
ErrAlert=StringConcatenate("Close Sell Order - Error ",ErrorCode,": ",ErrDesc);
if(ShowAlerts==true) Alert(ErrAlert);
ErrLog=StringConcatenate("Ask: ",MarketInfo(s_symbol,MODE_ASK)," Lots: ",OrderLots()," Ticket: ",OrderTicket());
Print(ErrLog);
}
}
break;
}
}
}
}
tfi_markets
両方のブレークステートメントを1行上に移動させてみてください("}"の中に入るように)。
こんにちは、Mladenです。
このコードでどこが間違っているのか、親切に教えていただけませんか?
添付のインディケータAll Pivotsですが、前日のオープンライン、前日のクローズライン、当日のオープンラインも表示されるように作り直しました。
しかし、このインジケータは一貫性がありません。ピボットは常に正しく表示されますが、私が追加した日足オープン、前日オープン、クローズ線が表示されることはほとんどありません。
コードはピボットのコードと同じに見えるので、すべて表示されるはずで、時々表示されますが、いつも表示されるわけではありません。何か間違ったことをしたのでしょうか。
ありがとうございました。
PG
オールピボット_デイリー.mq4
Mladenさん、こんにちは。
このコードでどこが間違っているのか、親切に教えてください。
添付のインディケータAll Pivotsは、前日のオープンライン、前日のクローズライン、当日のオープンラインも表示されるように作り直しました。
しかし、このインジケータは一貫性がありません。ピボットは常に正しく表示されますが、私が追加した日足オープン、前日オープン、クローズ線が表示されることはほとんどありません。
コードはピボットのコードと同じに見えるので、すべて表示されるはずで、時々表示されますが、いつも表示されるわけではありません。何か間違ったことをしたのでしょうか。
ありがとうございました。
PG
allpivots_daily.mq4PG
問題なく動作します(作成されたオブジェクトのリストを参照してください)。価格が重なっていないかどうか確認してください(それによって、いくつかの行が見えなくなる可能性があります)。
また、ObjectDel()関数で新しく作成した行を追加することを忘れないでください。
Mladenさん、ありがとうございます!何度も確認 しましたが、「"」の中の行の名前にうるさいようで、私の期待とは違っていました。
いつもながら、お忙しい中、ありがとうございます。
PG
PG
問題なく動作しています(作成されたオブジェクトのリストをご覧ください)。価格が重なっていないかチェックする(それが原因で、いくつかの線が見えなくなる可能性があります)。
Mladenさん、ありがとうございます。何度も確認しましたが、「"」の中の行の名前にうるさいようです。
いつもながら、お時間とご協力に感謝いたします。
PGオブジェクトの名前は常に一意でなければなりませんが、私が見た限りでは、あなたはそれを世話しました。
https://www.mql5.com/en/forum/174385/page263 よろしくお願いします。
Mladenさん、ありがとうございます。
私は問題を持っており、そのことです。
私の最初の信号は、最後の販売後に購入し、私はバーが抵抗またはコードの "srUp "の上に閉じた後である必要があります。
売りも同じで、バーがサポートまたは "srDown "の下で閉じられなければなりません。
どのように私は、コード上のこれを修正することができますか?
そして第二に、前に尋ねたナンバーワンだった、私は別の色で販売した後、最初の信号の買いを表示するために私のコードで修正することができますか?
#property strict
#プロパティ indicator_chart_window
#プロパティ indicator_buffers 4
#property indicator_color1 clrLime(インジケーターカラー1)。
#property indicator_color2 clrRed (インジケータカラー2)
#プロパティ indicator_color3 clrMagenta
#property indicator_color4 clrCyan (インジケーターカラー4)
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy)を設定します。
SetIndexBuffer(1,FirstSell)を設定します。
SetIndexBuffer(2,Buy)を設定します。
SetIndexBuffer(3,Sell)を設定します。
for(int i=0; i<4; i++) { {インデックススタイル(1)を設定します。
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}を設定します。
SetIndexArrow (0,233)を設定します。
SetIndexArrow (1,234)。
SetIndexArrow (2,233).SetIndexArrow(2,233)。
SetIndexArrow (3,234)。
return(INIT_SUCCEEDED);}.
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[]、const double &high[]、const double &low[]。
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
静的 int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--){
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUEです。
datetime when=Time;
int w=iBarShift(NULL,PERIOD_H4, when),
x=iBarShift(NULL,PERIOD_H1,時),
y=iBarShift(NULL,PERIOD_M15,when)。
z=iBarShift(NULL,PERIOD_M5,when)。
double srUpH4 = iCustom(NULL,PERIOD_H4, "Support and Resistance (Barry)",0,w)。
srDownH4 = iCustom(NULL,PERIOD_H4, "Support and Resistance (Barry)",1,w)です。
MidH4 = (srUpH4+srDownH4)/2,
srUpH1 = iCustom(NULL,PERIOD_H1, "Support and Resistance (Barry)",0,x)です。
srDownH1 = iCustom(NULL,PERIOD_H1, "サポートとレジスタンス(バリー)",1,x).MidH1 = (srUpH1,srDownH4) / 2,
MidH1 = (srUpH1+srDownH1)/2,
srUp15M = iCustom(NULL,PERIOD_M15, "Support and Resistance (Barry)",0,y)とします。
srDown15M = iCustom(NULL,PERIOD_M15, "Support and Resistance (Barry)",1,y).この場合、srDown15Mは1.0となります。
Mid15M=(srUp15M+srDown15M)/2.Mid15M=(srUp15M+srDown15M)/2,
srUp5M = iCustom(NULL,PERIOD_M5, "Support and Resistance (Barry)",0,z)です。
srDown5M = iCustom(NULL,PERIOD_M5, "Support and Resistance (Barry)",1,z)です。
Mid5M = (srUp5M+srDown5M)/2,
srUp = iCustom(NULL,0, "Support and Resistance (Barry)",0,i)。
srDown = iCustom(NULL,0, "Support and Resistance (Barry)",1,i).となります。
if(ClosesrUp) { // 最初のシグナル買い
買い=低ポイント; }
else {
買い=EMPTY_VALUE; }。
if(Close>Mid5M && Close>srUp) { // 第2のシグナル買い
買い=Low-_Point; }
else {
買い=EMPTY_VALUE; } } } else {
if(Close>MidH4 && Close>Mid15M && Close<srDown) { // 1回目のシグナル 売り
売り=High+_Point; }.
else {
売り=EMPTY_VALUE; } } else { 売り=High+_Point; } } 売り=EMPTY_VALUE
if(Close<Mid5M && Close<srDown) { // 2回目のシグナル売り
売り=High+_Point; }.
else {
売り=EMPTY_VALUE; }}。
return(rates_total);}になります。
これは、私はアラートのために持っているものです、私はそれを使用するか、代わりにアラート(t("ポップアップ用のテキスト"))を使用しなければなりませんか?
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i)の場合{。
Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)))。
lastAlert=i;}}となります。
mladenさんありがとうございました。