To get these in ASCII order, you will have to write your own function.
In[18]:= Clear[WRule]
WRule = {"-" -> "WMinus", "+" -> "WPlus"};
StringReplace[
Sort[StringReplace[{"(+3k-1,-4n/3-3m+k-7/3)", "(+3k+1,-n-m+k)", "(+3k-1,-n-m+k-1)"}, WRule], OrderedQ[{#1, #2}] &],
Reverse /@ WRule]
Out[20]= {"(+3k-1,-4n/3-3m+k-7/3)", "(+3k-1,-n-m+k-1)", "(+3k+1,-n-m+k)"}
or if the minus should appear later
In[21]:= Clear[WRule]
WRule = {"-" -> "WLast", "+" -> "WFirst"};
StringReplace[
Sort[StringReplace[{"(+3k-1,-4n/3-3m+k-7/3)", "(+3k+1,-n-m+k)", "(+3k-1,-n-m+k-1)"}, WRule], OrderedQ[{#1, #2}] &],
Reverse /@ WRule]
Out[23]= {"(+3k+1,-n-m+k)", "(+3k-1,-4n/3-3m+k-7/3)", "(+3k-1,-n-m+k-1)"}