開発者向けのヘルプです。 - ページ 3 12345678910...19 新しいコメント Sofiia Butenko 2017.11.17 18:45 #21 Sergey Chalyshev: 見積もり遅延の問題解決に貢献します。誰がなぜ遅延しているのか理解できない、ここに良い 例があります。インジケータは、気配値の到着を遅らせることができます(カウントされるまでは、気配値は到着しません)。 Реter Konow 2017.11.17 18:49 #22 Vladimir Pastushak: ボタンであればボタン、四角であれば四角のプロパティになります。ここでは、問題解決へのアプローチの一例として、グラフィックエンジンの一部をご紹介します。 if(!Объект_в_нажатом_состоянии && Идентификатор_события == _STANDART_EVENT_OBJECT_POINTED) { if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_MAIN_CATEGORY] == _OBJECT_MAIN_CATEGORY_STANDART) { if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_WINDOW_APPEARENCE_BUTTON) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,255); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite); } if(G_CORE[Номер_окна_под_событием][_W_Properties][_WINDOW_CURRENT_STATUS] == _WINDOW_CURRENT_STATUS_AWAKE) { if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_SCROLL_BAR_BUTTON) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrSilver); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrSilver); } if( G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_MENU_ITEM //&& !(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_INTERFACE_MAIN_MENU_ITEM && Открыто_окно_меню) ) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrLightSkyBlue); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrBlue); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite); //---------------- if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_INTERFACE_MAIN_MENU_ITEM && Открыто_окно_меню) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,0); } //---------------- } if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_TOOL_BOX_ITEM) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrSilver); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrSilver); } if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_TEXT_EDIT_BOX) { if(G_CORE[Номер_окна_под_событием][_W_Properties][_WINDOW_CATEGORY] == _WINDOW_CATEGORY_MENU) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,C'226,226,226'); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrLightSkyBlue); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,0); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_FONTSIZE,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_FONTSIZE] + 1); } else { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,C'226,226,226');//clrLightSkyBlue ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrLightSkyBlue);//clrBlue ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,0); //clrWhite // ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_FONTSIZE,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_FONTSIZE] + 1); } } if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_SET_VALUE_BUTTON) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrLightSkyBlue); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrBlue); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite); } if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_WINDOW_HANDLE) { if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_VERTICAL_SCROLL_BAR_HANDLE) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,8421504); ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,8421504); } if( G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_RIGHT_HANDLE || G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_BOTTOM_HANDLE || G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_HW_HANDLE ) { ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrDarkGray); } } エントリーに注目 G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME]必要なウィンドウ、必要なオブジェクト、必要なプロパティが配列に挿入されます。そして、新しい値を、すぐに、関数 ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,Свойство); これが私の理解する "エンジン "です。 Renat Akhtyamov 2017.11.17 18:52 #23 素朴な疑問があるのですが。グレイルの 作り方、必要なもの:コードの断片やその他のもの、採用すべき戦略とは? Реter Konow 2017.11.17 18:54 #24 Renat Akhtyamov:一番シンプルな疑問があります。グレイルの作り方、必要なもの:コードの断片とか? 私の意見-グレイルを 作る必要はない。マーケットでトレーダーとして働いている間は、この言葉を忘れるべきでしょう。)) Renat Akhtyamov 2017.11.17 18:54 #25 Реter Konow: 私の意見-グレイルを作る必要はない。マーケットでトレーダーとして働くときは、この言葉を忘れてはいけない。)) また、周りがみんな負けていて、儲かる戦略を学んだり、Expert Advisorを開発 したりする人がいない場合、どのように仕事をすればいいのでしょうか? Реter Konow 2017.11.17 18:56 #26 Renat Akhtyamov: みんなが漏らしているのに、どうして仕事ができるんだ? そうすると、みんなと違う仕事をしなければならない) Renat Akhtyamov 2017.11.17 18:58 #27 Реter Konow: だから、みんなと違う仕事をしなければならない) ここで誰に聞いても、みんな働いている。みんなが働いていないように、働いていない? Реter Konow 2017.11.17 19:01 #28 Renat Akhtyamov: ここで誰に聞いても、みんな働いている。みんなとは違う、効かない? 個人的には、中長期の株式戦略が好きです。FXは好きではありません。戦略は、市場やその参加者についての知識、そしてデータを正しく解釈することで構築されなければなりません。それがなければ、どんな戦略も「当てずっぽう」になってしまう。 Renat Akhtyamov 2017.11.17 19:03 #29 Реter Konow: 個人的には、中長期の株式戦略が好きです。FXは私の好みではありません。戦略は、市場やその参加者、データの正しい解釈に関する知識の上に築かれなければなりません。それがなければ、どんな戦略も「当てずっぽう」になってしまう。 はい、おっしゃるとおりです。ありがとうございました。 Vladimir Pastushak 2017.11.17 19:05 #30 Реter Konow: だから、別の方法で仕事をしなければならないのです)) それが私の仕事です。CButtonでは、名前のあるボタンとないボタンで異なるものを作り、ボタンだけのプロパティを 変更することができます。//|==================================================================| //| CButton.mqh | //| Copyright 2016, Trading-go Project. | //| Author: Voldemar, Version: 13.04.2016, Site http://trading-go.ru | //|------------------------------------------------------------------| //| Класс для работы с простой кнопкой | //|==================================================================| #property strict #include "CObject.mqh" //|==================================================================| //| CREATE("Opens",7000,7000,60,20,CORNER_LEFT_UPPER,"","Sans Serif",7,clrWhite,C'71,71,71',C'200,200,200',false,false,false,true,0,"\n"); //|==================================================================| class CButton { protected: CObject obj; public: bool SetXDISTANCE(int aX) { return obj.SetXDistance(aX);} //--- установим координаты кнопки bool SetXDISTANCE(string aName,int aX) { return obj.SetXDistance(aName,aX);} //--- установим координаты кнопки int GetXDISTANCE(void) { return (int)obj.GetXDistance();} //--- установим координаты кнопки int GetXDISTANCE(string aName) { return (int)obj.GetXDistance(aName);} //--- установим координаты кнопки void SetSUB_WINDOW(int aWindow) { obj.SetSubWindow(aWindow);} //--- установим координаты кнопки int GetSUB_WINDOW(void) { return obj.GetSubWindow();} //--- установим координаты кнопки //--- bool SetNEW_NAME(string aName,string aNewName) { return obj.SetNewName(aName,aNewName);} //--- void SetNAME(string aName) { obj.SetName(aName);} //--- string GetNAME(void) { return obj.GetName();} //--- //--- void SetHIDE(string aName) { obj.SetHide(aName);} //--- void SetHIDE(void) { obj.SetHide();} //--- //--- bool SetKILL(void) { return obj.SetDellName();} //--- bool SetKILL(string aName) { return obj.SetDellName(aName);} //--- //--- bool GetOBJECT_FIND(void) { return obj.GetObject_Find();} //--- bool GetOBJECT_FIND(string aName) { return obj.GetObject_Find(aName);} //--- // ================ bool SetXYToTimePrice(string aName,int aX,int aY,int &aSubWindow,datetime &aTime,double &aPrice) { return obj.SetXYToTimePrice(aName,aX,aY,aSubWindow,aTime,aPrice); } bool SetXYToTimePrice(int aX,int aY,int &aSubWindow,datetime &aTime,double &aPrice) { return obj.SetXYToTimePrice(aX,aY,aSubWindow,aTime,aPrice); } // ================ bool SetTimePriceToXY(string aName,datetime aTime,double aPrice,int aXSIZE=0,int aYSIZE=0) { return obj.SetTimePriceToXY(aName,aTime,aPrice,aXSIZE,aYSIZE); } bool SetTimePriceToXY(datetime aTime,double aPrice,int aXSIZE=0,int aYSIZE=0) { return obj.SetTimePriceToXY(aTime,aPrice,aXSIZE,aYSIZE); } void Debug(bool aDebug=false) { obj.Debug(aDebug);} //--- Режим дебага // ================ //CREATE("Opens",7000,7000,60,20,CORNER_LEFT_UPPER,"","Sans Serif",7,clrWhite,C'71,71,71',C'200,200,200',false,false,false,true,0,"\n"); // ================ bool CREATE( const string aName = "Button", // имя кнопки const int aX = 20, // координата по оси X const int aY = 20, // координата по оси Y const int aWidth = 50, // ширина кнопки const int aHeight = 18, // высота кнопки const ENUM_BASE_CORNER aCorner = CORNER_LEFT_UPPER, // угол графика для привязки const string aText = "Button", // текст const string aFont = "Arial", // шрифт const int aFont_size = 10, // размер шрифта const color aClr = clrWhite, // цвет текста const color aBack_clr = C'71,71,71', // цвет фона const color aBorder_clr = C'200,200,200', // цвет границы const bool aState = false, // нажата/отжата const bool aBack = false, // на заднем плане const bool aSelection = false, // выделить для перемещений const bool aHidden = true, // скрыт в списке объектов const int aZ_order = 0, // приоритет на нажатие мышью const string aTooltip = "\n" // комментарий ) { if(obj.CreateObject(aName,OBJ_BUTTON)) //--- создадим кнопку { SetXDISTANCE(aX); //--- установим координаты кнопки SetYDISTANCE(aY); //--- установим координаты кнопки SetXSIZE(aWidth); //--- установим размер кнопки SetYSIZE(aHeight); //--- установим размер кнопки SetCORNER(aCorner); //--- установим угол графика, относительно которого будут определяться координаты точки SetTEXT(aText); //--- установим текст SetFONT(aFont); //--- установим шрифт текста SetFONTSIZE(aFont_size); //--- установим размер шрифта SetCOLOR(aClr); //--- установим цвет текста SetBGCOLOR(aBack_clr); //--- установим цвет фона SetBORDER_COLOR(aBorder_clr); //--- установим цвет границы SetBACK(aBack); //--- отобразим на переднем (false) или заднем (true) плане SetSTATE(aState); //--- переведем кнопку в заданное состояние SetSELECTABLE(aSelection); //--- включим (true) или отключим (false) режим перемещения кнопки мышью SetSELECTED(aSelection); //--- включим (true) или отключим (false) режим перемещения кнопки мышью SetHIDDEN(aHidden); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов SetZORDER(aZ_order); //--- установим приоритет на получение события нажатия мыши на графике SetTOOLTIP(aTooltip); //--- комментарий } else return false; return true; } }; //|==================================================================| //| | //|==================================================================| 12345678910...19 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
見積もり遅延の問題解決に貢献します。誰がなぜ遅延しているのか理解できない、ここに良い 例があります。
インジケータは、気配値の到着を遅らせることができます(カウントされるまでは、気配値は到着しません)。
ボタンであればボタン、四角であれば四角のプロパティになります。
ここでは、問題解決へのアプローチの一例として、グラフィックエンジンの一部をご紹介します。
エントリーに注目
必要なウィンドウ、必要なオブジェクト、必要なプロパティが配列に挿入されます。そして、新しい値を、すぐに、関数
これが私の理解する "エンジン "です。素朴な疑問があるのですが。
グレイルの 作り方、必要なもの:コードの断片やその他のもの、採用すべき戦略とは?
一番シンプルな疑問があります。
グレイルの作り方、必要なもの:コードの断片とか?
私の意見-グレイルを作る必要はない。マーケットでトレーダーとして働くときは、この言葉を忘れてはいけない。))
みんなが漏らしているのに、どうして仕事ができるんだ?
だから、みんなと違う仕事をしなければならない)
ここで誰に聞いても、みんな働いている。みんなとは違う、効かない?
個人的には、中長期の株式戦略が好きです。FXは私の好みではありません。戦略は、市場やその参加者、データの正しい解釈に関する知識の上に築かれなければなりません。それがなければ、どんな戦略も「当てずっぽう」になってしまう。
だから、別の方法で仕事をしなければならないのです))