//+------------------------------------------------------------------+voidOnStart()
{
if(Signal == Buy_) //условия
ArrowBuyCreate(0,"ArrowBuy_"+(string)Time[0],0,Time[0],Ask);
if(Signal == Sell_) //условия
ArrowSellCreate(0,"ArrowSell_"+(string)Time[0],0,Time[0],Bid);
}
//+------------------------------------------------------------------+//====================================================================//+------------------------------------------------------------------+//| Создает знак "Buy" |//+------------------------------------------------------------------+bool ArrowBuyCreate(constlong chart_ID=0, // ID графикаconststring name="ArrowBuy", // имя знакаconstint sub_window=0, // номер подокнаdatetime time=0, // время точки привязкиdouble price=0, // цена точки привязкиconstcolor clr=C'3,95,172', // цвет знакаconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)constint width=1, // размер линии (при выделении)constbool back=false, // на заднем планеconstbool selection=false, // выделить для перемещенийconstbool hidden=true, // скрыт в списке объектовconstlong z_order=0) // приоритет на нажатие мышью
{
//--- установим координаты точки привязки, если они не заданы// ChangeArrowEmptyPoint(time,price);//--- сбросим значение ошибкиResetLastError();
//--- создадим знакif(!ObjectCreate(chart_ID,name,OBJ_ARROW_BUY,sub_window,time,price))
{
Print(__FUNCTION__,
": не удалось создать знак \"Buy\"! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет знакаObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,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);
}
//+------------------------------------------------------------------+//| Создает знак "Sell" |//+------------------------------------------------------------------+bool ArrowSellCreate(constlong chart_ID=0, // ID графикаconststring name="ArrowSell", // имя знакаconstint sub_window=0, // номер подокнаdatetime time=0, // время точки привязкиdouble price=0, // цена точки привязкиconstcolor clr=C'225,68,29', // цвет знакаconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)constint width=1, // размер линии (при выделении)constbool back=false, // на заднем планеconstbool selection=false, // выделить для перемещенийconstbool hidden=true, // скрыт в списке объектовconstlong z_order=0) // приоритет на нажатие мышью
{
//--- установим координаты точки привязки, если они не заданы// ChangeArrowEmptyPoint(time,price);//--- сбросим значение ошибкиResetLastError();
//--- создадим знакif(!ObjectCreate(chart_ID,name,OBJ_ARROW_SELL,sub_window,time,price))
{
Print(__FUNCTION__,
": не удалось создать знак \"Sell\"! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет знакаObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,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);
}
CListNode クラスでオーバーライドされた仮想 Compare メソッドが無視されるのはなぜですか?
デバッガで確認したところ、常にCObjectからのCompareが使用されていました。CDataクラスでCompareをオーバーライドする必要があります。
奇跡は起きない。
File --> Open Data Folder --> Window --> MQL4 --> で、いつものフォルダがあります。フォーラムのメインページにあるこの記事へのリンクです。ただ、怠け者の私には無理です。
ありがとうございます。正直なところ、何か間違っているのではないかと思っていました。これですべて納得です。
スクリプトを実行する際、条件が成立した時にアイコン(マーカー)を付ける必要があります。どうすればいいのでしょうか?
スクリプトを実行する際、条件が成立したときのアイコン(ラベル)を設定する必要があります。どうすればいいのでしょうか?
条件が成立したらすぐに - マークを付ける。曖昧にしない。
アルチョムの言う「...」とはcondition triggered - put a mark.」と、コンディションが発生したときにスクリプトのコードにマークを設定することを意味した。
MQL4言語ガイドに、バッジ作成スクリプトの非常に良い例があります。例えば、チャート上に「買い」のアイコンを作成し、移動させるスクリプト です。アルチョムの言う「...」とはcondition triggered - put a mark.」とありますが、彼が言いたかったのは、条件が成立したときにアイコン(マーカー)をセットするようにスクリプトコードに書いておけ、ということです。
MQL4 Referenceには、アイコンを作成するためのスクリプトの非常に良い例が掲載されています。例えば、チャート上に「買い」のアイコンを作成し、移動さ せる スクリプト です。良いスクリプトは、そこから必要な関数を引っ張ってくる。
と、こんな感じです。
テストモードで*.txtファイルを開こうとすると、エラーが発生することがあるのですが、その原因を教えてください。
このオプションは完璧に機能します。
でも、これではダメなんです。
5004エラー、関数FileIsExist(File_Name2)が何らかの理由でfalseを返す (wtf????)
両方のファイル(csvとtxt)はtesterのtemptyfilesフォルダ(Dドライブのターミナル)にあり、それらの名前は変数File_NameとFile_Name 2に対応しています - 私はそれらを何度も確認しました。
アルチョムの言う「...」とはcondition triggered - put a mark. "のように、条件が成立したときにバッジ(マーカー)をセットするようにスクリプトコードに記述することです。
MQL4のリファレンスブックには、アイコンを作成するためのスクリプトの非常に良い例が掲載されています。例えば、チャート上に「買い」のアイコンを作成し、移動さ せる スクリプト です。いいえ、ディナ、私が言ったことはそのままの意味です;)
具体的な質問と具体的な答え」をほのめかしました。今日は意地悪なんです :)
今日は意地悪なんです :)
今日は熱い手に乗らないように、じゃあ静かにします、:)。:)
その時は何も言いませんよ :) 誤って今日のホットハンドに入ってしまわないようにね。:)