MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 53

 
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 ブルー
//--------------------------------------------------------------------
double Buffer[];
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY,2)を設定します。
SetIndexBuffer(0,Buffer;)を設定する。
return(0)です。
}
// -------------------------------------------------------------------
int deinit()
{
return(0)です。
}
//--------------------------------------------------------------------
int start()
{
int StartBar = Bars - IndicatorCounted() - 1;
for(int i = StartBar; i >= 0; i--)
Buffer[i] =(iClose("EURGBP",0,i)-iOpen("EURGBP",0,i))/MarketInfo("EURGBP",MODE_POINT)+...
(iClose("EURAUD",0,i)-iOpen("EURAUD",0,i))/MarketInfo("EURAUD",MODE_POINT) になります。
return(0)です。
}

//---------------------------------------------------------------------

申し訳ありませんが、私はコードでテキストをフォーマットする方法を知りません。

これは、単純なカウンターインジケータ(現在の時間枠でピップで楽器本体の合計)楽器のいずれかです。ヒストグラムの各バーは、「O」で始まり、時間枠の終値で終了します。例えば、現在のタイムフレームがH1で、12.00に「0」、13.00に「+20」と表示され、バーグラフは明確に= +20と読み取れます。 しかし、この時間帯には-50と+60が読み取られましたが、インジケータはそれらを表示しません。それは、最小バッファと最大バッファのためのバッファを追加する必要がある[i]です。この値は、インジケータに書かれたシンボルごとに異なる時間に来るので、HighとLowを使うことはできません。2番目のバッファは、現在のチャート(H1)上の小さい方のチャート(M5)のBuffer[i]の最大値を固定し、3番目のバッファは、現在のチャート(H1)上の小さい方のチャート(M5)のBuffer[i]の最小値を固定したいと思います。親愛なる皆様、誰が何をアドバイスできるのでしょうか?

 
vitek2010:

申し訳ありませんが、テキストのコーディング の仕方がわかりません

高値と安値は、インディケータで指定されたすべての商品で異なる時間に来るので、使用できません。

そして、各楽器のCloseは、キャンドルの寿命の間に 同時に発生するのですか?だから、間違った意見で、ダニの来る時期が全部違うんです)))

 
trader781:
ポイントは、常にいくつかのロットで負ける注文があり、それは残りの注文でカバーされなければならないということです。きっかけは、閉店時間です。一つでも欠けると、その連鎖は途絶えてしまうのです。したがって、問題は、選択されたすべてのものの平均価格をどのようにトロールするかということである。

そこで、ループ内のすべての「必要な」注文を調べ、この平均価格を計算する必要があります。そして、現在の価格が 計算された平均価格から必要な方向に乖離したとき、すべての注文を修正して再びループにチャージする必要があります。

もし、毎ティックごとに平均価格を読みたくない場合は、別の注文を追加するときだけ平均価格を読むこともできます。

 
Alexey Viktorov:

そこで、ループ内のすべての「必要な」注文を調べ、この平均価格を計算する必要があります。そして、現在の価格が 計算された平均価格から必要な方向に乖離したとき、すべての注文を修正して再びループにチャージする必要があります。

もし、毎ティックごとに平均価格を読みたくない場合は、別の注文が追加されたときだけ読み取ることができます。

差し支えなければ、オーダーグリッドが不均一に分布している場合(OrderType()<2の場合)の平均価格の計算方法について説明してください。以上です。
 
Vitalie Postolache:

そして、各楽器のCloseは、キャンドルの寿命の間に、同時に来るのですか?ティックではなく、インジケーターバッファの最小値と最大値を固定することです)

私はティックについて話していない私は、より大きな時間枠のギャップでは、小さな時間枠で計算された指標バッファの最小値と最大値を固定するべきだと言っていた私はスクリーンショットにそれを表示しようとしますこのケースでは、最小の時間枠はH1です(しかし、それは別の時間枠を持っています)。

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img].

私は週05.12(赤十字)を検討します上記のインジケータによるこの棒グラフは、明らかに週の終わりにペアの動きの合計が95ポイントで下降していたことを示していますが、それは週に下降または上昇した何ポイントであるかは示されていません。

そして、この画面では、この1週間のH1チャートでのこの指標の 動きを見ることができます。

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img].

インジケータは最小値400で、その後700まで上昇し160で終了(2画面の数字の差は重要ではない)

ヒストグラムと最小値、最大値、終値(この場合はwikiにある)の1つのバーで、これらのすべての値が必要です。理想的には、タイムフレームの設定で指定したものから現在のタイムフレームで

mt4のインスタでmcl5のサイトからコピーしてやった。

 
trader781:
難しいことでなければ、注文グリッドが偏在している場合(OrderType()<2)、どのように平均価格を計算すればよいのか説明してください。以上です。

ぜひとも解明してほしい。

for(int i=0; i<OrdersTotal(); i++) {
  if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
   if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) {
    if(OrderType()==OP_BUY) {
      _BuyProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит  по всем Sell
      _BuyLot+=OrderLots(); //совокупный лот по всем Sell
    }
    if(OrderType()==OP_SELL) {
      _SellProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит  по всем Sell
      _SellLot+=OrderLots(); //совокупный лот по всем Sell
    }
}}}

double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE);

if(_BuyLot  > 0) { BuyAwerage = NormalizeDouble(Bid-(_BuyProfit/(TickValue*_BuyLot))*_Point,_Digits); } else { BuyAwerage=0; }// безубыток buy
if(_SellLot > 0) { SellAwerage= NormalizeDouble(Ask+(_SellProfit/(TickValue*_SellLot))*_Point,_Digits); } else { SellAwerage=0; } // безубыток sell
if(_BuyLot-_SellLot! = 0) { AllAwerage= NormalizeDouble(((_BuyLot>_SellLot)?Bid:Ask)-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits); } else { AllAwerage=0; } // общий безубыток
 
Vitaly Muzichenko:

コツがつかめるといいんですけどね。



double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE);


こちらについて、少しお話を聞かせてください。このコードの意味がわからない。
 
trader781:
少しお話を聞かせてください。

預けた通貨での 商品の価格の最低変動額

ピップ値は各商品ごとに異なり、EUR/USDなどのように「1」にはなりません。

 
Vitaly Muzichenko:

預けた通貨での 商品の価格の最低変動額

ピップ値は各商品ごとに異なり、EUR/USDなどのように「1」にはなりません。

うん、今わかった

例えば、(eqi=balance*1.1) や (eqi=balance*0.9) のように、フローティングストップを設定できることがわかりました。

は、そのようなツールはあるのでしょうか?

 
trader781:

はい、わかりました。

しかし、(eqi=balance*1.1) や (eqi=balance*0.9) のように、フローティングストップを設定することもできることが判明しました。

は、そのようなツールはあるのでしょうか?

あなたはすでに特定の価格を持っており、そこから単純なトロールのアナログを使用してトロールする必要があるだけですが、単純なトロールは、ポジションの開始 価格= OrderOpenPrice()に基づいており、ここでは平均計算価格に基づいており、1レベルごとにすべての位置を変更する