#pragma rtGlobals=2 // Use modern global access method. #pragma IgorVersion=6.2 // for markerHook Menu "Graph", dynamic Submenu "High Low Close Open Trace" "Append High Low Close Open Trace", mAppendHighLowCloseOpen() Submenu "Line Sizes" HighLowCloseOpenLineSizesMenu(), /Q, DoHighLowCloseOpenLineSize() End Submenu "Color" HighLowCloseOpenColorMenu(),/Q, DoHighLowCloseOpenColor() End End End Function OpenCloseMarkerProc(s) STRUCT WMMarkerHookStruct &s if( s.marker > 3 ) return 0 endif Variable overhang= s.penThick/2 Variable size= s.size - overhang if( s.marker == 0 ) // open DrawLine s.x-size, s.y, s.x+overhang , s.y elseif( s.marker == 1 ) // close DrawLine s.x-overhang, s.y, s.x+size, s.y endif return 1 End Constant kOpenMarker =100 Constant kCloseMarker =101 StrConstant ksHighLowCloseOpenUserDataName="WMHighLowCloseOpenData" static Function HaveHighLowCloseOpen(graphName) String graphName if( strlen(graphName) == 0 ) return 0 endif DoWindow $graphName if( V_Flag == 0 ) return 0 endif String traces= TraceNameList(graphName, ";", 1) Variable i, n= ItemsInList(traces) for(i=0; i