[MT4指标]简单的AIS指标图示
比另外一个简单些的mt4指标
//< 1. Property >=============================================================================================//< 1>
//< 2>
#property copyright "Copyright (C) 2009, MetaQuotes Software Corp." //< 3>
#property link "http://www.metaquotes.net" //< 4>
//< 5>
#define A.System.Series "AIS" //< 6>
#define A.System.Modification "10331" //< 7>
#define A.System.ReleaseDate "11.03.2009" //< 8>
#define A.System.Program "Advanced Indicator Superlight" //< 9>
#define A.System.Programmer "Airat Safin http://www.mql4.com/users/Ais" //< 10>
//< 11>
//1. Property >=============================================================================================//< 12>
//< 13>
//< 2. Program >==========================================================================================//< 14>
//< 15>
//< 2.1. Global Data >----------------------------------------------------------------------------------------//< 16>
//< 17>
string A.System.Name = "A System" ; //< 18>
//< 19>
string avs.SystemStamp ; //< 20>
//< 21>
extern int aei.ID = 8 ; //< 22>
//< 23>
int aci.Timeframe = { 0 , 1 , 5 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 } ; //< 24>
//< 25>
int aci.Color = { Black , //< 26>
Red , //< 27>
Orange , //< 28>
Yellow , //< 29>
Green , //< 30>
Blue , //< 31>
Indigo , //< 32>
Violet , //< 33>
Gray , //< 34>
White } ; //< 35>
//< 36>
#property indicator_chart_window //< 37>
//< 38>
double arv.Chart = { EMPTY , //< 39>
EMPTY , //< 40>
EMPTY , //< 41>
EMPTY , //< 42>
EMPTY , //< 43>
EMPTY , //< 44>
EMPTY , //< 45>
EMPTY , //< 46>
EMPTY , //< 47>
EMPTY , //< 48>
EMPTY , //< 49>
EMPTY } ; //< 50>
//< 51>
#define ari.TimeZero 0 //< 52>
#define ari.TimeRight 1 //< 53>
#define ari.TimeLeft 2 //< 54>
#define ari.BarRight 3 //< 55>
#define ari.BarLeft 4 //< 56>
#define ari.BarsTotal 5 //< 57>
#define ari.BarsShift 6 //< 58>
#define ari.Resolution.H 7 //< 59>
#define ari.PriceMax 8 //< 60>
#define ari.PriceMin 9 //< 61>
#define ari.PriceRange 10 //< 62>
#define ari.Resolution.V 11 //< 63>
//< 64>
string avs.Prefix ; //< 65>
//< 66>
string avs.PrefixSynthBars ; //< 67>
string avs.PrefixSynthMeanA ; //< 68>
string avs.PrefixSynthMeanB ; //< 69>
string avs.PrefixSynthSlopeA ; //< 70>
string avs.PrefixSynthSlopeB ; //< 71>
//< 72>
string avs.SetupBegin ; //< 73>
string avs.SetupSynthFrames ; //< 74>
string avs.SetupSynthSize ; //< 75>
string avs.SetupColorBars ; //< 76>
string avs.SetupColorMeans ; //< 77>
string avs.SetupColorSlopes ; //< 78>
string avs.SetupEnd ; //< 79>
//< 80>
int avi.SetupBegin = 1000000000 ; //< 81>
int avi.SetupSynthFrames = 1 ; //< 82>
int avi.SetupSynthSize ; //< 83>
int avi.SetupColorBars ; //< 84>
int avi.SetupColorMeans ; //< 85>
int avi.SetupColorSlopes ; //< 86>
int avi.SetupEnd = 1000000000 ; //< 87>
//< 88>
int avi.FlagSynthFramesShow ; //< 89>
int avi.FlagSynthFramesCreate ; //< 90>
//< 91>
int avi.IndexSynthBegin ; //< 92>
int avi.IndexSynthEnd ; //< 93>
int avi.Synths ; //< 94>
//< 95>
string avs.Symbol ; //< 96>
int avi.Period ; //< 97>
//< 98>
//2.1. Global Data >----------------------------------------------------------------------------------------//< 99>
//< 100>
//< 2.2. Special Functions >----------------------------------------------------------------------------------//< 101>
//< 102>
//< A.System.Indicator: Function init >```````````````````````````````````````````````````````````````````````//< 103>
//< 104>
int init () //< 105>
{ //< 106>
avs.Symbol = Symbol () ; //< 107>
avi.Period = Period () ; //< 108>
//< 109>
avi.SetupSynthSize = aci.Timeframe [ aei.ID ] ; //< 110>
avi.SetupColorBars = aci.Color [ aei.ID ] ; //< 111>
avi.SetupColorMeans = aci.Color [ aei.ID ] ; //< 112>
avi.SetupColorSlopes = aci.Color [ aei.ID ] ; //< 113>
//< 114>
if ( aei.ID < 1 //< 115>
|| aei.ID > 9 ) avi.SetupSynthSize = avi.Period ; //< 116>
//< 117>
arv.Chart [ ari.TimeZero ] = EMPTY ; //< 118>
arv.Chart [ ari.TimeRight ] = EMPTY ; //< 119>
arv.Chart [ ari.TimeLeft ] = EMPTY ; //< 120>
arv.Chart [ ari.BarRight ] = EMPTY ; //< 121>
arv.Chart [ ari.BarLeft ] = EMPTY ; //< 122>
arv.Chart [ ari.BarsShift ] = EMPTY ; //< 123>
arv.Chart [ ari.BarsTotal ] = EMPTY ; //< 124>
arv.Chart [ ari.Resolution.H ] = EMPTY ; //< 125>
arv.Chart [ ari.PriceMax ] = EMPTY ; //< 126>
arv.Chart [ ari.PriceMin ] = EMPTY ; //< 127>
arv.Chart [ ari.PriceRange ] = EMPTY ; //< 128>
arv.Chart [ ari.Resolution.V ] = EMPTY ; //< 129>
//< 130>
avs.Prefix = A.System.Series + A.System.Modification + "/" + aei.ID + "." ; //< 131>
//< 132>
avs.SetupBegin = avs.Prefix + "Setup.0.Begin.=======================" ; //< 133>
avs.SetupSynthFrames = avs.Prefix + "Setup.1.1.SynthFrames" ; //< 134>
avs.SetupSynthSize = avs.Prefix + "Setup.1.2.SynthSize" ; //< 135>
avs.SetupColorBars = avs.Prefix + "Setup.2.1.BarsColor" ; //< 136>
avs.SetupColorMeans = avs.Prefix + "Setup.2.2.MeanLinesColor" ; //< 137>
avs.SetupColorSlopes = avs.Prefix + "Setup.2.3.SlopesColor" ; //< 138>
avs.SetupEnd = avs.Prefix + "Setup.9.End.=========================" ; //< 139>
//< 140>
avs.PrefixSynthBars = avs.Prefix + "SynthBar." ; //< 141>
avs.PrefixSynthMeanA = avs.Prefix + "SynthMean.A" ; //< 142>
avs.PrefixSynthMeanB = avs.Prefix + "SynthMean.B" ; //< 143>
avs.PrefixSynthSlopeA = avs.Prefix + "SynthSlopeA." ; //< 144>
avs.PrefixSynthSlopeB = avs.Prefix + "SynthSlopeB." ; //< 145>
//< 146>
//< Existing Objects Deletion > //< 147>
int ali.PrefixDigits = StringLen ( avs.Prefix ) ; //< 148>
//< 149>
int i , N ; N = ObjectsTotal () - 1 ; //< 150>
for ( i = N ; i >= 0 ; i -- ) //< 151>
{ if ( StringLen ( ObjectName ( i ) ) >= ali.PrefixDigits ) //< 152>
if ( StringSubstr ( ObjectName ( i ) , 0 , ali.PrefixDigits ) == avs.Prefix ) //< 153>
ObjectDelete ( ObjectName ( i ) ) ; } //< 154>
//< 155>
GlobalVariablesDeleteAll ( avs.Prefix ) ; //< 156>
// //< 157>
//< 158>
avi.FlagSynthFramesShow = 0 ; //< 159>
avi.FlagSynthFramesCreate = 0 ; //< 160>
//< 161>
GlobalVariableSet ( avs.SetupBegin , avi.SetupBegin ) ; //< 162>
GlobalVariableSet ( avs.SetupSynthFrames , avi.SetupSynthFrames ) ; //< 163>
GlobalVariableSet ( avs.SetupSynthSize , avi.SetupSynthSize ) ; //< 164>
GlobalVariableSet ( avs.SetupColorBars , avi.SetupColorBars ) ; //< 165>
GlobalVariableSet ( avs.SetupColorMeans , avi.SetupColorMeans ) ; //< 166>
GlobalVariableSet ( avs.SetupColorSlopes , avi.SetupColorSlopes ) ; //< 167>
GlobalVariableSet ( avs.SetupEnd , avi.SetupEnd ) ; //< 168>
//< 169>
avs.SystemStamp = A.System.Name + ": " + //< 170>
A.System.Series + //< 171>
A.System.Modification + "/" + aei.ID + " " + //< 172>
A.System.Program ; //< 173>
//< 174>
Alert ( avs.SystemStamp , ": Symbol=" , //< 175>
avs.Symbol , ", Period=" , //< 176>
avi.Period , ", Reload code=" , //< 177>
UninitializeReason () ) ; //< 178>
} //< 179>
//```````````````````````````````````````````````````````````````````````//< 180>
//< 181>
//< A.System.Indicator: Function deinit >`````````````````````````````````````````````````````````````````````//< 182>
//< 183>
int deinit () //< 184>
{ //< 185>
afr.DeleteSynthFrames () ; //< 186>
//< 187>
GlobalVariablesDeleteAll ( avs.Prefix ) ; //< 188>
//< 189>
Alert ( avs.SystemStamp , ": Stop code=" , UninitializeReason () ) ; //< 190>
} //< 191>
//`````````````````````````````````````````````````````````````````````//< 192>
//< 193>
//< A.System.Indicator: Function start >``````````````````````````````````````````````````````````````````````//< 194>
//< 195>
int start () //< 196>
{ //< 197>
static bool alb.RunFlag ; if ( ! alb.RunFlag ) { //< 198>
if ( NormalizeDouble ( MarketInfo ( avs.Symbol , MODE_TICKVALUE ) , Digits ) > 0 ) //< 199>
alb.RunFlag = True ; //< 200>
else return ; } //< 201>
//< 202>
if ( ! GlobalVariableCheck ( avs.SetupBegin ) ) //< 203>
GlobalVariableSet ( avs.SetupBegin , avi.SetupBegin ) ; //< 204>
if ( ! GlobalVariableCheck ( avs.SetupSynthFrames ) ) //< 205>
GlobalVariableSet ( avs.SetupSynthFrames , avi.SetupSynthFrames ) ; //< 206>
if ( ! GlobalVariableCheck ( avs.SetupSynthSize ) ) //< 207>
GlobalVariableSet ( avs.SetupSynthSize , avi.SetupSynthSize ) ; //< 208>
if ( ! GlobalVariableCheck ( avs.SetupColorBars ) ) //< 209>
GlobalVariableSet ( avs.SetupColorBars , avi.SetupColorBars ) ; //< 210>
if ( ! GlobalVariableCheck ( avs.SetupColorMeans ) ) //< 211>
GlobalVariableSet ( avs.SetupColorMeans , avi.SetupColorMeans ) ; //< 212>
if ( ! GlobalVariableCheck ( avs.SetupColorSlopes ) ) //< 213>
GlobalVariableSet ( avs.SetupColorSlopes , avi.SetupColorSlopes ) ; //< 214>
if ( ! GlobalVariableCheck ( avs.SetupEnd ) ) //< 215>
GlobalVariableSet ( avs.SetupEnd , avi.SetupEnd ) ; //< 216>
//< 217>
if ( arv.Chart [ ari.TimeZero ] != Time [ 0 ] //< 218>
|| arv.Chart [ ari.BarLeft ] != WindowFirstVisibleBar () //< 219>
|| arv.Chart [ ari.Resolution.H ] != WindowBarsPerChart () //< 220>
|| arv.Chart [ ari.PriceMax ] != WindowPriceMax () //< 221>
|| arv.Chart [ ari.PriceMin ] != WindowPriceMin () //< 222>
|| avi.SetupSynthSize != GlobalVariableGet ( avs.SetupSynthSize ) //< 223>
|| avi.SetupColorBars != GlobalVariableGet ( avs.SetupColorBars ) //< 224>
|| avi.SetupColorMeans != GlobalVariableGet ( avs.SetupColorMeans ) //< 225>
|| avi.SetupColorSlopes != GlobalVariableGet ( avs.SetupColorSlopes ) ) //< 226>
//< 227>
{ avi.SetupSynthSize = GlobalVariableGet ( avs.SetupSynthSize ) ; //< 228>
avi.SetupColorBars = GlobalVariableGet ( avs.SetupColorBars ) ; //< 229>
avi.SetupColorMeans = GlobalVariableGet ( avs.SetupColorMeans ) ; //< 230>
avi.SetupColorSlopes = GlobalVariableGet ( avs.SetupColorSlopes ) ; //< 231>
//< 232>
afr.DeleteSynthFrames () ; //< 233>
avi.FlagSynthFramesCreate = 1 ; //< 234>
//< 235>
afr.MeasureChart () ; } //< 236>
//< 237>
if ( GlobalVariableGet ( avs.SetupSynthFrames ) == 1 ) //< 238>
{ if ( avi.FlagSynthFramesShow == 0 ) //< 239>
{ avi.FlagSynthFramesShow = 1 ; //< 240>
avi.FlagSynthFramesCreate = 1 ; } //< 241>
afr.PlotSynthFrames () ; } //< 242>
else if ( avi.FlagSynthFramesShow == 1 ) //< 243>
{ avi.FlagSynthFramesShow = 0 ; //< 244>
afr.DeleteSynthFrames () ; } //< 245>
} //< 246>
//``````````````````````````````````````````````````````````````````````//< 247>
//< 248>
//2.2. Special Functions >----------------------------------------------------------------------------------//< 249>
//< 250>
//< 2.3. Common Functions >----------------------------------------------------------------------------------//< 251>
//< 252>
//< A.System.Indicator: Function List >``````````````````````````````````````````````````````````````````````//< 253>
// 01 int afr.MeasureChart // 20 //< 254>
// 02 int afr.CreateLineT // 5 //< 255>
// 03 int afr.CreateFrame // 3 //< 256>
// 04 int afr.DeleteSynthFrames // 8 //< 257>
// 05 int afr.PlotSynthFrames // 55 //< 258>
//< A.System.Indicator: Function List >``````````````````````````````````````````````````````````````````````//< 259>
//< 260>
//< A.System.Indicator: Function 1 >`````````````````````````````````````````````````````````````````````````//< 261>
int afr.MeasureChart () // 20 //< 262>
{ //< 263>
arv.Chart [ ari.Resolution.H ] = WindowBarsPerChart () ; //< 264>
arv.Chart [ ari.BarLeft ] = WindowFirstVisibleBar () ; //< 265>
//< 266>
if ( arv.Chart [ ari.BarLeft ] < arv.Chart [ ari.Resolution.H ] ) //< 267>
arv.Chart [ ari.BarRight ] = 0 ; //< 268>
else arv.Chart [ ari.BarRight ] = arv.Chart [ ari.BarLeft ] - arv.Chart [ ari.Resolution.H ] ; //< 269>
//< 270>
arv.Chart [ ari.BarsTotal ] = arv.Chart [ ari.BarLeft ] - arv.Chart [ ari.BarRight ] + 1 ; //< 271>
arv.Chart [ ari.BarsShift ] = arv.Chart [ ari.Resolution.H ] - arv.Chart [ ari.BarsTotal ] ; //< 272>
//< 273>
arv.Chart [ ari.TimeZero ] = Time [ 0 ] ; //< 274>
int ali.IndexRight = arv.Chart [ ari.BarRight ] ; //< 275>
int ali.IndexLeft = arv.Chart [ ari.BarLeft ] ; //< 276>
arv.Chart [ ari.TimeRight ] = Time [ ali.IndexRight ] ; //< 277>
arv.Chart [ ari.TimeLeft ] = Time [ ali.IndexLeft ] ; //< 278>
//< 279>
arv.Chart [ ari.PriceMax ] = WindowPriceMax () ; //< 280>
arv.Chart [ ari.PriceMin ] = WindowPriceMin () ; //< 281>
arv.Chart [ ari.PriceRange ] = arv.Chart [ ari.PriceMax ] - arv.Chart [ ari.PriceMin ] ; //< 282>
arv.Chart [ ari.Resolution.V ] = arv.Chart [ ari.PriceRange ] / Point ; //< 283>
} //< 284>
//`````````````````````````````````````````````````````````````````````````//< 285>
//< 286>
//< A.System.Indicator: Function 2 >`````````````````````````````````````````````````````````````````````````//< 287>
int afr.CreateLineT ( // 5 //< 288>
string aas.Name , //< 289>
int aai.Color , //< 290>
int aai.Width , //< 291>
int aai.Style , //< 292>
int aai.Ray , //< 293>
int aai.Time1 , //< 294>
double aad.Price1 , //< 295>
int aai.Time2 , //< 296>
double aad.Price2 ) //< 297>
{ //< 298>
ObjectCreate ( aas.Name , OBJ_TREND , 0 , aai.Time1 , aad.Price1 , aai.Time2 , aad.Price2 ) ; //< 299>
ObjectSet ( aas.Name , OBJPROP_COLOR , aai.Color ) ; //< 300>
ObjectSet ( aas.Name , OBJPROP_WIDTH , aai.Width ) ; //< 301>
ObjectSet ( aas.Name , OBJPROP_STYLE , aai.Style ) ; //< 302>
ObjectSet ( aas.Name , OBJPROP_RAY , aai.Ray ) ; //< 303>
} //< 304>
//`````````````````````````````````````````````````````````````````````````//< 305>
//< 306>
//< A.System.Indicator: Function 3 >`````````````````````````````````````````````````````````````````````````//< 307>
int afr.CreateFrame ( // 3 //< 308>
string aas.Name , //< 309>
int aai.Color , //< 310>
int aai.BackGround , //< 311>
int aai.Time1 , //< 312>
double aad.Price1 , //< 313>
int aai.Time2 , //< 314>
double aad.Price2 ) //< 315>
{ //< 316>
ObjectCreate ( aas.Name , OBJ_RECTANGLE , 0 , aai.Time1 , aad.Price1 , aai.Time2 , aad.Price2 ) ; //< 317>
ObjectSet ( aas.Name , OBJPROP_COLOR , aai.Color ) ; //< 318>
ObjectSet ( aas.Name , OBJPROP_BACK , aai.BackGround ) ; //< 319>
} //< 320>
//`````````````````````````````````````````````````````````````````````````//< 321>
//< 322>
//< A.System.Indicator: Function 4 >`````````````````````````````````````````````````````````````````````````//< 323>
int afr.DeleteSynthFrames () // 8 //< 324>
{ //< 325>
int i , N ; N = avi.Synths ; //< 326>
for ( i = 0 ; i < N ; i ++ ) //< 327>
{ ObjectDelete ( avs.PrefixSynthBars + i ) ; //< 328>
ObjectDelete ( avs.PrefixSynthMeanA + i ) ; //< 329>
ObjectDelete ( avs.PrefixSynthMeanB + i ) ; //< 330>
ObjectDelete ( avs.PrefixSynthSlopeA + i ) ; //< 331>
ObjectDelete ( avs.PrefixSynthSlopeB + i ) ; } //< 332>
//< 333>
avi.Synths = 0 ; //< 334>
} //< 335>
//`````````````````````````````````````````````````````````````````````````//< 336>
//< 337>
//< A.System.Indicator: Function 5 >`````````````````````````````````````````````````````````````````````````//< 338>
int afr.PlotSynthFrames () // 55 //< 339>
{ //< 340>
int ali.Synth = avi.SetupSynthSize ; //< 341>
//< 342>
if ( iBars ( avs.Symbol , ali.Synth ) < 2 ) return ; //< 343>
//< 344>
if ( avi.FlagSynthFramesCreate == 1 ) //< 345>
{ avi.FlagSynthFramesCreate = 0 ; //< 346>
//< 347>
if ( avi.Period <= ali.Synth ) //< 348>
{ //< 349>
double ald.Spread = Ask - Bid ; //< 350>
//< 351>
int ali.TimeChartBegin = iTime ( avs.Symbol , avi.Period , arv.Chart [ ari.BarRight ] ) ; //< 352>
int ali.TimeChartEnd = iTime ( avs.Symbol , avi.Period , arv.Chart [ ari.BarLeft ] ) ; //< 353>
//< 354>
if ( ali.TimeChartBegin < iTime ( avs.Symbol , ali.Synth , 0 ) ) //< 355>
avi.IndexSynthBegin = iBarShift ( avs.Symbol , ali.Synth , ali.TimeChartBegin ) ; //< 356>
else avi.IndexSynthBegin = 0 ; //< 357>
//< 358>
if ( ali.TimeChartEnd < iTime ( avs.Symbol , ali.Synth , 0 ) ) //< 359>
avi.IndexSynthEnd = iBarShift ( avs.Symbol , ali.Synth , ali.TimeChartEnd ) ; //< 360>
else avi.IndexSynthEnd = 0 ; //< 361>
//< 362>
if ( avi.IndexSynthEnd == avi.IndexSynthBegin ) avi.IndexSynthEnd ++ ; //< 363>
//< 364>
avi.Synths = avi.IndexSynthEnd - avi.IndexSynthBegin + 1 ; //< 365>
//< 366>
int ali.Suffix = 0 ; //< 367>
int i , N ; N = avi.IndexSynthEnd ; //< 368>
for ( i = avi.IndexSynthBegin ; i <= N ; i ++ ) //< 369>
{ if ( i == 0 ) //< 370>
int ali.Time1 = iTime ( avs.Symbol , ali.Synth , i ) + ali.Synth * 60 ; //< 371>
else ali.Time1 = iTime ( avs.Symbol , ali.Synth , i - 1 ) ; //< 372>
int ali.Time2 = iTime ( avs.Symbol , ali.Synth , i ) ; //< 373>
double ald.BidHigh = iHigh ( avs.Symbol , ali.Synth , i ) ; //< 374>
double ald.BidLow = iLow ( avs.Symbol , ali.Synth , i ) ; //< 375>
double ald.AskHigh = ald.BidHigh + ald.Spread ; //< 376>
double ald.AskLow = ald.BidLow + ald.Spread ; //< 377>
double ald.AverageA = ( ald.AskHigh + ald.AskLow ) / 2 ; //< 378>
double ald.AverageB = ( ald.BidHigh + ald.BidLow ) / 2 ; //< 379>
double ald.OpenBid = iOpen ( avs.Symbol , ali.Synth , i ) ; //< 380>
double ald.CloseBid = iClose ( avs.Symbol , ali.Synth , i ) ; //< 381>
double ald.OpenAsk = ald.OpenBid + ald.Spread ; //< 382>
double ald.CloseAsk = ald.CloseBid + ald.Spread ; //< 383>
//< 384>
afr.CreateFrame ( avs.PrefixSynthBars + ali.Suffix , //< 385>
avi.SetupColorBars , 0 , //< 386>
ali.Time1 , ald.AskHigh , ali.Time2 , ald.BidLow ) ; //< 387>
afr.CreateLineT ( avs.PrefixSynthMeanA + ali.Suffix , //< 388>
avi.SetupColorMeans , 1 , STYLE_DOT , 0 , //< 389>
ali.Time1 , ald.AverageA , ali.Time2 , ald.AverageA ) ; //< 390>
afr.CreateLineT ( avs.PrefixSynthMeanB + ali.Suffix , //< 391>
avi.SetupColorMeans , 1 , STYLE_DOT , 0 , //< 392>
ali.Time1 , ald.AverageB , ali.Time2 , ald.AverageB ) ; //< 393>
afr.CreateLineT ( avs.PrefixSynthSlopeA + ali.Suffix , //< 394>
avi.SetupColorSlopes , 1 , STYLE_DASH , 0 , //< 395>
ali.Time1 , ald.CloseAsk , ali.Time2 , ald.OpenAsk ) ; //< 396>
afr.CreateLineT ( avs.PrefixSynthSlopeB + ali.Suffix , //< 397>
avi.SetupColorSlopes , 1 , STYLE_DASH , 0 , //< 398>
ali.Time1 , ald.CloseBid , ali.Time2 , ald.OpenBid ) ; //< 399>
ali.Suffix ++ ; } } //< 400>
} // if //< 401>
} //< 402>
//`````````````````````````````````````````````````````````````````````````//< 403>
//< 404>
//2.3. Common Functions >----------------------------------------------------------------------------------//< 405>
//< 406>
//2. Program >=============================================================================================//< 407>AIS1AIS.jpg
发表于:2015-06-17 10:07只看该作者
3楼
谢谢楼主,辛苦了
韬客社区www.talkfx.co
发表于:2015-06-21 05:09只看该作者
6楼
缺钱,灌水赚通宝,谢谢分享!!
韬客社区www.talkfx.co
发表于:2015-06-21 05:25只看该作者
7楼
快快快快快快
韬客社区www.talkfx.co
发表于:2015-07-01 12:06只看该作者
8楼
感谢楼主分享
韬客社区www.talkfx.co
发表于:2015-07-04 00:49只看该作者
9楼
谢谢分享
韬客社区www.talkfx.co
发表于:2017-08-10 04:01只看该作者
10楼
感谢分享
韬客社区www.talkfx.co