しかし、なぜObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ?
enough ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
enough ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
これは初心者にとって興味深い記事ですが、Expert Advisorを正しく動作させるためには、コードを少し修正する必要があります。
ありがとう、ウラジミール。
//+------------------------------------------------------------------+ //|上昇トレンドラインmq5 | //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"UpwardTrendline"); ObjectCreate(0,"UpwardTrendline",OBJ_TREND,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|DownwardTrendlineシステム。mq5 //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"DnwardTrendline"); ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|サポートラインシステム。mq5|サポートラインシステム //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"supportLine"); ObjectCreate(0,"supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"supportLine",OBJPROP_COLOR,Green); ObjectSetInteger(0,"supportLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"supportLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"supportLine",OBJPROP_RAY,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|レジスタンス・ライン・システムmq5|抵抗線システム //+------------------------------------------------------------------+ void OnTick() { int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"resistanceLine"); ObjectCreate(0,"resistanceLine",OBJ_HLINE,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"resistanceLine",OBJPROP_COLOR,Red); ObjectSetInteger(0,"resistanceLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"resistanceLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
あなたの線の引き方はとても素晴らしい。トレンド・ラインに関する 1つの見解:2つ目のアンカー・ポイントが常に0インデックス・バーでは、あまり意味がありません。理想的なのは、特定の基準に基づいて2番目のアンカー・ポイントを定義することです。例えば、最初のバーから最短距離で 30 バー離れた最高値の 2 番目のバーや、翌日の最高値のバーなどです。
記事掲載おめでとうございます。
記事掲載おめでとうございます。
Andrei Pereira トレンド・ラインに関する 1つの見解:2つ目のアンカー・ポイントが常に0インデックス・バーでは、あまり意味がありません。理想的なのは、特定の基準に基づいて2番目のアンカー・ポイントを定義することです。例えば、最初のバーから最短距離で30本離れた、価格が最も高い2本目のバーや、翌日の価格が最も高いバーを採用するなどです。 記事化おめでとうございます。
コメントありがとうございます。
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「MQL5を使った線の扱い方」はパブリッシュされました:
今回は、MQL5によるトレンドラインや支持線と抵抗線といった、最も重要な線の扱い方についてご紹介します。
トレンドラインは、トレンドラインの種類に基づいて注文を出すことで、取引に使用することができます。上昇トレンドラインがある場合、価格が上からこのトレンドラインを試しながら下に移動し、その後上に反発することが予想できるので、このトレンドライン付近で買い注文を出すことができます。逆に、下降トレンドラインがある場合、価格がこのトレンドラインを下から試しながら上昇し、その後下に反発することが予想できるので、この下降トレンドラインに沿って空売りまたは売り注文を出すことができます。
以下は、上昇トレンドラインの場合です。
明らかに上昇していることは先ほどの図でわかりますが、直近の3つの安値を結んでみると、上昇に向かう同じ線上にあることがわかります。
作者: Mohamed Abdelmaaboud