inputstring ds;//Параметры заднего фона панелиinputint x_offset_anchor=100;
inputint y_offset_anchor=100;
int anchor_width=150;
int anchor_height=20;
int back_height=100;
inputcolor anchor_color=clrBlue, back_color=clrAquamarine, clrBorder=clrAliceBlue;
inputstring ds2;////+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mapping
RectLabelCreate(0,"Back_panel_anchor_point",0,x_offset_anchor,y_offset_anchor,anchor_width,anchor_height,anchor_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,2,false,true,true,0);
RectLabelCreate(0,"Back_panel",0,x_offset_anchor,y_offset_anchor+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason){
ObjectsDeleteAll(0,-1,-1);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
if(id == CHARTEVENT_OBJECT_DRAG && sparam == "Back_panel_anchor_point")
{
ObjectDelete(0,"Back_panel");
RectLabelCreate(0,"Back_panel",0,ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_XDISTANCE),ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_YDISTANCE)+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+ //| Создает прямоугольную метку | //+------------------------------------------------------------------+ bool RectLabelCreate(constlong chart_ID=0, // ID графика conststring name="RectLabel", // имя метки constint sub_window=0, // номер подокна constint x=0, // координата по оси X constint y=0, // координата по оси Y constint width=50, // ширина constint height=18, // высота constcolor back_clr=C'236,233,216', // цвет фона constENUM_BORDER_TYPE border=BORDER_SUNKEN, // тип границы constENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // угол графика для привязки constcolor clr=clrRed, // цвет плоской границы (Flat) constENUM_LINE_STYLE style=STYLE_SOLID, // стиль плоской границы constint line_width=1, // толщина плоской границы constbool back=false, // на заднем плане constbool selection=false, // выделить для перемещений constbool hidden=true, // скрыт в списке объектов constlong z_order=0) // приоритет на нажатие мышью
{
//--- сбросим значение ошибки ResetLastError();
//--- создадим прямоугольную метку if(!ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0))
{
Print(__FUNCTION__,
": не удалось создать прямоугольную метку! Код ошибки = ",GetLastError());
return(false);
}
//--- установим координаты метки ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- установим размеры метки ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- установим цвет фона ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- установим тип границы ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border);
//--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- установим цвет плоской рамки (в режиме Flat) ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии плоской рамки ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим толщину плоской границы ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
//--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения метки мышью ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение return(true);
}
皆さん、こんにちは。プログラマーの皆様、Alert3.Lv1;2;3ごとにサウンドファイルを指定し、指定した別のサウンドをトリガーできる行を挿入するのを手伝ってください。
皆さん、こんにちは。プログラマーの皆様、Alert3.Lv1;2;3にサウンドファイルを指定できる文字列を挿入して、別のサウンドをトリガーできるようにするのを手伝ってください。
皆さん、こんにちは。プログラマーの皆様、Alert3.Lv1;2;3のサウンドファイルに文字列を挿入して別のサウンドをトリガーするのを手伝ってください。
作り始めれば、きっと助けてもらえる。
作り始めれば、助けが来る。
作り始めれば、助けが来る。
助けて、スケートが滑らない。
グラフィックパネルの 操作方法を学び、自分の作品を作ろうとしています。
2つの矩形を作成しました。1つはメイン矩形で、パネルのすべてのオブジェクトが移動するときの座標になるようにしました。
ChartEventでこのような条件を作りましたが、メインの矩形を動かすと2~3秒後に2番目の矩形が動くだけです。どうすれば修正できますか?
条件にCHARTEVENT_MOUSE_MOVEも試しましたが、同じ効果です。
助けて、スケートが滑らない。
グラフィックパネルの操作方法を学び、自分の作品を作ろうとしています。
2つの矩形を作成しました。1つはメイン矩形で、パネルオブジェクトを移動させるときに、すべての座標の向きを合わせる必要があります。
ChartEventでそのような条件を作ったのですが、メインの矩形を動かすと2~3秒後にしか2番目が動かないのですが、どうしたらいいでしょうか?
CHARTEVENT_MOUSE_MOVE も条件に入れて試しましたが、同じ効果でした。
オブジェクトを作成 し、移動させた後、ChartRedraw()を実行する必要があります。
オブジェクトを 作成して移動させた後、ChartRedraw()を行う必要があります。
そう、その方がいいんです。それで、スムーズに滑らせることは不可能なんですね。
このメイン矩形が選択されている場合のみ再描画するように条件を追加しました。)
他のスレッドから再投稿しました。誰かを揺さぶって、助けてもらうかもしれない。
<地元の専門家を見ると、私の同級生(ああ、懐かしい)を思い出します。彼はすべてのルール、すべての公式を知っていましたが、いつどれを適用するか、すぐに考えることができず、ほとんどすべてを経験し、決められた時間には決して ついていけないほどでした。ここでも同じで、いろいろなことを知っていても、解決策が見えず、ただ「勘」で動いてしまうのです。研究所では、数字や数式を使わずに問題を解くこと、そうして初めて、どの数式を適用すればいいのかが明確にわかることを教わりました。MKL4に新しく参加する人は、言葉の微妙なニュアンスを理解していないので、そこに助けが必要です(「教科書を読め」という意味ではありません)。 しかし、ポジションのオープン/クローズの落とし穴は誰も教えてくれ ません。もしかして、知らないのでしょうか?だから、私の質問を聞き流してくれたのです...>。
ご挨拶、現在の価格を ファイルに書き込むためのヘルプです。
こちらを ご覧ください。
やり始めると、助けが来る。
やり始めると、助けが来る。
やり始めると、助けが来る。
良い意味での皮肉はありがたいです。何から始めればいいのでしょうか?もし私が、どこから始めて、どこで終わるかを知っていたら、おそらくこのフォーラムの経験豊富なシッターさんたちの助けには興味を示さないでしょう。ただ、プログラミングというこの種の活動に精通した人なら、特定の場所に文字列をいくつか置いて、あるサウンドファイルをインジケーターで指示することも問題ないと思うんです。そして、あなたは私に「始めなさい」と言いますが、この偉大で不可解なコーディングの技術を習得するためには、どのような基本から始めればよいのでしょうか。 私が言いたいのは、こういうことです...。
皮肉はありがたいが、ただ実力はない。何から始めればいいのでしょうか?もし私が、どこから始めて、どこで終わるかを知っていたら、おそらくこのフォーラムの経験豊富なメンバーからのヘルプに興味を示さなかったでしょう。ただ、プログラミングというこの種の活動に精通した人なら、特定の場所に文字列をいくつか置いて、あるサウンドファイルをインジケーターで指示することも問題ないと思うんです。そして、あなたは私に「始めなさい」と言いますが、この偉大で不可解なコーディングの技術を習得するためには、どのような基本から始めればよいのでしょうか。 私が言いたいのは、こういうことです...。
こちらを ご覧ください。
ありがとうございます、そこの値はファイルからで一回ですが、私のタスクは時間制限付きです。
毎日冒頭の30分間、120秒ごとに現在の価格と時刻を記録します。
以前のエントリーを上書きしないでください。