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

 
psyman:

次のコードは、写真で見るストーリーです。


ネットワークを切断し、インジケータを追加

次のグラフに切り替わります


y2の値が変化したため、戻る


y2が値を戻したのに、マーカーが「消えた」値でカウントされている!マウスのホイールを回転させる。

マーカーが元の位置に戻りました

隣接するグラフに切り替えたとき、非アクティブなウィンドウがすべてフルスクリーンに展開されない。つまり、アクティブな状態よりも小さくなっているのです。そのため、オブジェクトはグラフの左上から 順に座標が小さくなっていく。そして、ウィンドウをアクティブにすると、チャートがリフレッシュされるのを待つか、強制的にリフレッシュさせる必要があります。スクロールホイールでスクロールさせることで行います。

 
psyman:

次のコードは、写真で見るストーリーです。


ネットワークを切断し、インジケータを追加

次のグラフに切り替わります


y2の値が変化したため、戻る


y2が値を戻したのに、マーカーが「消えた」値でカウントされている!マウスのホイールを回転させる。

マーカーが元の位置に戻りました

ChartTimePriceToXY
プレーンテキスト(OBJ_TEXT) + 1-3バーの未来を印刷することができます、それはあなたがそれを必要とする場所に常になります)。

 
Taras Slobodyanik:

ChartTimePriceToXY
プレーンテキスト(OBJ_TEXT)+1-3バー先の未来を印刷することができます。)

右方向へのバーシフトを無効にした場合のみ、テキストがウィンドウの外に出てしまいます。

考え方は正しいのですが、どうも経験が非常に不足しているようです。

 
Alexey Viktorov:

右方向へのバーシフトを無効にした場合のみ、テキストはウィンドウの外側に表示されます。

良いアイデアだと思いますが、経験が浅いのでしょう。

まあ、マーカーを右上がりにしたいのであれば、チャートの一番右のバーを取ってそこに描けばいいんだけどね。

 

こんにちは。
EAでグローバル型の変数を作成し、新しい関数を呼び出すときにこれらのデータがクリアされないようにする方法を提案できますか?

変数データを.NETで呼び出す。

bool  GlobalVariableGet( string  "name", double "var"  ); // К примеру

ここで、"var "を操作に挿入することができる。

そして、それらは、関数:

datetime  GlobalVariableSet( 
   string  name,      // имя 
   double  value      // устанавлимое значение 
   );

すべてを理解したいんです。例題がなく、一方がdatetimeで 他方がboolの 場合、データがどのように動作するのかよくわからないのですが?エラーはない?

 
psyman:

次のコードは、写真で見るストーリーです。

ネットワークを切断し、インジケータを追加

次のグラフに切り替わります

y2の値が変化したため、戻る

y2が値を戻したのに、マーカーが「消えた」値でカウントされている!マウスのホイールを回転させる。

マーカーが元の位置に戻りました

//+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname="Bid";
input color Bid_color = clrCrimson;

//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) 
   { 
   ObjectDelete(0,objname);
   } 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
{
   SetTXT();
   return(rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) 
{ 
   if(id==CHARTEVENT_CHART_CHANGE) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int      first_bar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
int      width_bar=(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0);
double   label_price=iClose(_Symbol,_Period,0);
datetime label_time=0;

   if(width_bar>first_bar)
      label_time=iTime(_Symbol,_Period,1)+(width_bar-first_bar)*PeriodSeconds();
   else
      label_time=iTime(_Symbol,_Period,first_bar-width_bar+1);

   if(ObjectFind(0,objname)<0)
      {
      ObjectCreate(0, objname, OBJ_TEXT,0,0,0);
      ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12);
      ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color);
      ObjectSetString(0, objname, OBJPROP_FONT, "Verdana");
      ObjectSetInteger(0,objname,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
      ObjectSetInteger(0,objname,OBJPROP_BACK,false);
      ObjectSetInteger(0,objname,OBJPROP_SELECTABLE,false);
      }
   
   ObjectSetString(0,objname,OBJPROP_TEXT,DoubleToString(label_price, _Digits-1)); 
   ObjectMove(0,objname,0,label_time,label_price);
   
   ChartRedraw();
}
 
Taras Slobodyanik:


ありがとうございました!明日は、XPに居座っているので、iTimeとiCloseの 置き換えを考えてみます。

 
皆さん、ごきげんよう。
プログラマーに質問です。
アドバイスお願いします
ブローカーによっては、利食い価格と損切り価格を指定して注文を出すことができない場合があります。

関数OrderSend() が1つあるだけです。

むしろ、OrderSend()は注文を開きますが、この注文には逆指値と利益価格は存在しないことになります。

この注文は、OrderModify()を使用して後続のコードで変更し、注文にストップとプロフィットを追加する必要があります。


そこで問題は、売買の機能において、誰がどのように事件を処理し、保険をかけるかである
例えば、OrderSend()は動作したが、OrderModify()が何らかの理由で動作しなかった場合や
ストップやプロフィットのないオープンオーダーがあるのですが?

このような事態が発生した場合、どのように保険をかけ、どのように対処すればよいのでしょうか?
アドバイスをお願いします。
アストラカンの使い方がわからない方は、アストラカンのコードを使用しないでください。

の時間ですが、情報が見当たりません。

ブレークイーブン機能には一定の保険がかかっていると思いますが、赤字になった場合のみです。

損切りになったが、ストップロスがない場合?

お返事をいただき、とても感謝しています
 

みなさん、こんにちは。

EAが動作しているのに、そのプロパティを入力できないのはなぜか、教えてください。以前はそうだったが、今はプロパティを開くことができない。一度は端末を再起動することで解決しましたが、1分後に再び問題が発生しました。Expert Advisorは新鮮で、端末も最近動いています。EAのプロパティの問題点は何ですか?

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

 
demonRDV:

みなさん、こんにちは。

EAの実行中にそのプロパティを入力できないのはなぜか、教えてください。以前はそうだったが、今はプロパティを開くことができない。一度は端末を再起動することで解決しましたが、1分後に再び問題が発生しました。Expert Advisorは新鮮で、端末も最近動いています。EAのプロパティの問題点は何ですか?

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

ホットキーF7を押す :-)

EAのアイコンをクリックすることが常に可能とは限りません。アイコンが他のオブジェクトに覆われていたり、EAがメッセージキューに負荷をかけたり、その他100500の理由があります。