//+------------------------------------------------------------------+ //| LineColorChange.mq4 | //| Copyright 2016, Rondo | //| http://fx-dollaryen.seesaa.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, Rondo" #property link "http://fx-dollaryen.seesaa.net/" #property version "1.1" #property strict #property indicator_chart_window enum key{ KEY_A = 65, //[ A ] KEY_B, //[ B ] KEY_C, //[ C ] KEY_D, //[ D ] KEY_E, //[ E ] KEY_F, //[ F ] KEY_G, //[ G ] KEY_H, //[ H ] KEY_I, //[ I ] KEY_J, //[ J ] KEY_K, //[ K ] KEY_L, //[ L ] KEY_M, //[ M ] KEY_N, //[ N ] KEY_O, //[ O ] KEY_P, //[ P ] KEY_Q, //[ Q ] KEY_R, //[ R ] KEY_S, //[ S ] KEY_T, //[ T ] KEY_U, //[ U ] KEY_V, //[ V ] KEY_W, //[ W ] KEY_X, //[ X ] KEY_Y, //[ Y ] KEY_Z, //[ Z ] KEY_0 = 48, //[ 0 ] KEY_1, //[ 1 ] KEY_2, //[ 2 ] KEY_3, //[ 3 ] KEY_4, //[ 4 ] KEY_5, //[ 5 ] KEY_6, //[ 6 ] KEY_7, //[ 7 ] KEY_8, //[ 8 ] KEY_9, //[ 9 ] }; enum lineStyle{ lineStyle1 = STYLE_SOLID, //STYLE_SOLID lineStyle2 = STYLE_DASH, //STYLE_DASH lineStyle3 = STYLE_DOT, //STYLE_DOT lineStyle4 = STYLE_DASHDOT, //STYLE_DASHDOT lineStyle5 = STYLE_DASHDOTDOT, //STYLE_DASHDOTDOT lineStyle6 = 6 //keep }; enum wide{ wide1 = 1, //1 wide2, //2 wide3, //3 wide4, //4 wide5, //5 wide6 //keep }; input key LineKey1 = KEY_B; //キー1 input color LineColor1 = clrBlue; //色1 input lineStyle LineStyle1 = 0; //スタイル1 input wide LineWide1 = 1; //幅1 input key LineKey2 = KEY_R; //キー2 input color LineColor2 = clrRed; //色2 input lineStyle LineStyle2 = 0; //スタイル2 input wide LineWide2 = 1; //幅2 input key LineKey3 = KEY_G; //キー3 input color LineColor3 = clrGreen; //色3 input lineStyle LineStyle3 = 0; //スタイル3 input wide LineWide3 = 1; //幅3 input key LineKey4 = KEY_Y; //キー4 input color LineColor4 = clrYellow; //色4 input lineStyle LineStyle4 = 0; //スタイル4 input wide LineWide4 = 1; //幅4 input key LineKey5 = KEY_W; //キー5 input color LineColor5 = clrWhite; //色5 input lineStyle LineStyle5 = 0; //スタイル5 input wide LineWide5 = 1; //幅5 input key LineKey6 = KEY_V; //キー6 input color LineColor6 = clrViolet; //色6 input lineStyle LineStyle6 = 0; //スタイル6 input wide LineWide6 = 1; //幅6 input key LineKey7 = KEY_P; //キー7 input color LineColor7 = clrPink; //色7 input lineStyle LineStyle7 = 0; //スタイル7 input wide LineWide7 = 1; //幅7 string obj_name = ""; int obj_LineStyle = 0; int obj_LineWide = 0; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit(){ //--- enable object create events ChartSetInteger(0, CHART_EVENT_OBJECT_CREATE, true); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason){ } //+------------------------------------------------------------------+ //| 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[]){ return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam){ if(id == CHARTEVENT_OBJECT_CREATE || id == CHARTEVENT_OBJECT_CLICK){ obj_name = sparam; obj_LineStyle = (int)ObjectGetInteger(0, obj_name, OBJPROP_STYLE); obj_LineWide = (int)ObjectGetInteger(0, obj_name, OBJPROP_WIDTH); } if(id == CHARTEVENT_KEYDOWN && obj_name != ""){ if(lparam == LineKey1){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor1); if(LineStyle1 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle1); if(LineWide1 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide1); } if(lparam == LineKey2){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor2); if(LineStyle2 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle2); if(LineWide2 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide2); } if(lparam == LineKey3){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor3); if(LineStyle3 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle3); if(LineWide3 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide3); } if(lparam == LineKey4){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor4); if(LineStyle4 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle4); if(LineWide4 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide4); } if(lparam == LineKey5){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor5); if(LineStyle5 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle5); if(LineWide5 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide5); } if(lparam == LineKey6){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor6); if(LineStyle6 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle6); if(LineWide6 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide6); } if(lparam == LineKey7){ ObjectSetInteger(0, obj_name, OBJPROP_COLOR, LineColor7); if(LineStyle7 == 6) ObjectSetInteger(0, obj_name, OBJPROP_STYLE, obj_LineStyle); else ObjectSetInteger(0, obj_name, OBJPROP_STYLE, LineStyle7); if(LineWide7 == 6) ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, obj_LineWide); else ObjectSetInteger(0, obj_name, OBJPROP_WIDTH, LineWide7); } obj_name = ""; } }