½ð×ÖËþ¾ö²ß½»Ò×ϵͳ¸ß¼¶½Ì³Ì
¿Ø¼þµÄ½éÉܺÍÓ¦ÓÃÈç¹ûÓÐÒÉÎÊÇ뼰ʱ²ÎÔÄËæ»ú¸½´øµÄVBA±à³ÌÊÖ²á(°ïÖú²Ëµ¥->VBA±à³ÌÐÅÏ¢ºÍMicrosoft ´°Ìå²Î¿¼)¡£
£¨4£©µ÷ÊÔVBA ´úÂë
³ÌÐòÉè¼Æ¹ý³ÌÖУ¬¾³£ÐèÒª¶¨Î»´íÎóλÖò¢¸ÄÖ®£¬´Ë¹ý³Ì³£³ÆÎªµ÷ÊÔ¡£VBA ÖеÚÒ»Àà´íÎóΪÓï·¨´íÎó£¬Èç¹ûÄã´ò¿ªÁË´úÂë±à¼Æ÷µÄ¡°×Ô¶¯Óï·¨¼ì²é¡±£¬Ôòµ±ÄãÊäÈëÁËÒ»Ìõ´íÎóµÄÓ﷨ʱ£¬VBA IDE »á¼´Ê±¸ø³öÒ»ÌõÌáʾÐÅÏ¢¡£
µÚ¶þÀà´íÎóΪÔËÐдíÎó¡£ÔËÐдíÎóÊÇÖ¸Ôì³ÉÓ¦ÓóÌÐòÍ£Ö¹ÔËÐеÄÈκδíÎó¡£ÓÐʱÕâÊÇÓÉÓÚ´íÎóµÄƴд£¬ÀýÈç¶ÔÏóÃû×Ö¡£VBA ²»»á¼ì²éÕâÖÖÀàÐ͵ĴíÎ󣬳ý·ÇÔËÐиùý³Ì¡£ÔËÐдíÎóÒ²¿ÉÄÜÊÇÓû§µÄ²Ù×÷ËùÒýÆðµÄ£¬¶øÓû§µÄ²Ù×÷²»ÊÇÄãËùÄÜ¿ØÖƺÍÔ¤²âµÄ¡£ÀýÈ磬Èç¹ûÓû§²»¸øÄã±àдµÄº¯ÊýÌṩÊý¾Ý£¬¾ÍÓпÉÄܲúÉúÔËÐдíÎó¡£¶ÔÓÚ´ËÀàÇé¿ö£¬¾ÍÐèҪд´íÎó´¦Àí´úÂë¡£×îºóÒ»ÖÖ¿ÉÄܳöÏֵĴíÎóÊÇÂß¼´íÎó¡£Âß¼´íÎó²»»áÏÔʾÔÚIDE£¬ÎÊÌâÔÚÓÚ´úÂëµÄÖ´Ðнá¹ûºÍÔ¤ÆÚµÄ½á¹û²»Í¬£¬Õâ¾ÍÒâζ×Å´úÂëµÄÂß¼»òËã·¨³öÁËÎÊÌâ¡£Ëæ×ŶÔÓïÑԺͻ·¾³µÄÊìϤ£¬´ó²¿·ÖµÄµ÷ÊÔʱ¼ä¿ÉÄܶ¼ÓÃÔÚ¶ÔÂß¼´íÎóµÄ´¦ÀíÉÏ¡£
±¾ÎÄÖ÷Òª½éÉÜʹÓÃApplication.MsgOutº¯Êýµ÷ÊԵķ½·¨£¬Õâ¸öº¯Êý¿ÉÒÔÔÚ½ð×ÖËþÏ·½µÄÏûÏ¢´°¿ÚÊä³öÖ¸¶¨µÄÎı¾£¬¿ÉÒÔ¶Ô³ÌÐò½øÐиú×ÙÅжϺ͵÷ÊÔ¡£¾ÙÀýÈçÏÂ:
Dim i
For i = 1 To 10 Step 1 Application.MsgOuti Next
£¨5£©´íÎó´¦Àí
Ëùνµ÷ÊÔ£¬¾ÍÊǶԿÉÒÔÔ¤²âµÄÎÊÌâ½øÐд¦Àí²¢½øÐоÀÕýµÄ¹ý³Ì¡£µ÷ÊÔÖ»Äܹ»·¢ÏÖ¿ÉÒÔÔ¤²âµÄ´íÎó£¬Òª´¦Àí²»¿ÉÔ¤²âµÄºÍ²»¿É±ÜÃâµÄ´íÎóʱ£¬¾Í±ØÐëʹÓôíÎó´¦Àí¡£Í¨¹ýÆôÓôíÎó´¦Àí£¬¾Í¿ÉÒÔʹӦÓóÌÐò¸üÎȶ¨¡¢¸ü½¡×³¡£Ëùν´íÎó´¦Àí³ÌÐò£¬¾ÍÊÇÓ¦ÓóÌÐòÖÐÓÃÀ´²¶»ñºÍ´¦Àí´íÎóµÄʵÓóÌÐò¡£
Èô²»Ê¹Óà On Error Resume Next Óï¾ä£¬·¢ÉúµÄÈκÎÔËÐÐʱ´íÎó¶¼½«ÊÇÖÂÃüµÄ£¬¼´£¬ÏÔʾ´íÎóÐÅÏ¢²¢ÖÕÖ¹ÔËÐС£ On Error Resume Next »áʹ³ÌÐò´Ó½ôËæ²úÉú´íÎóµÄÓï¾äÖ®ºóµÄÓï¾ä¼ÌÐøÖ´ÐУ¬»òÊÇ´Ó½ôËæ×î½üÒ»´Îµ÷Óùý³Ì£¨¸Ã¹ý³Ìº¬ÓÐ On Error Resume Next Óï¾ä£©µÄÓï¾ä¼ÌÐøÔËÐС£Õâ¸öÓï¾ä¿ÉÒÔ²»¹ËÔËÐÐʱ´íÎ󣬼ÌÐøÖ´ÐгÌÐò£¬Ö®ºóÄú¿ÉÒÔÔÚ¹ý³ÌÄÚ²¿½¨Á¢´íÎó´¦ÀíÀý³Ì¡£ÔÚµ÷ÓÃÁíÒ»¸ö¹ý³Ìʱ£¬On Error Resume Next Óï¾ä±äΪ·Ç»î¶¯µÄ¡£ËùÒÔ£¬Èç¹ûÏ£ÍûÔÚÀý³ÌÖнøÐÐÄÚ²¿´íÎó´¦Àí£¬ÔòÓ¦ÔÚÿһ¸öµ÷ÓõÄÀý³ÌÖÐÖ´ÐÐ On Error Resume Next Óï¾ä¡£
3.4½ð×ÖËþµÄ¶ÔÏóÄ£ÐÍ
ÉÏÒ»Õ½éÉÜÁËVBA µÄIDE »·¾³ºÍVBA Óï·¨£¬ÕâÒ»Õ½éÉܽð×ÖËþ¶ÔÏóÄ£ÐÍ£¬VBA Óï·¨ºÍ½ð×ÖËþ¶ÔÏóÄ£ÐÍ×é³ÉÁËÓ¦Óýð×ÖËþ·ÖÎö ºÍVBA ½øÐпª·¢µÄ»ù´¡¡£´ÓijÖ̶ֳÈÉϽ²£¬Àí½âºÍÊìϤ½ð×ÖËþ¶ÔÏóÄ£Ð͵Ĺý³Ì£¬Ò²¾ÍÊÇʹÓýð×ÖËþºÍVBA ½øÐпª·¢µÄ¹ý³Ì¡£ºÍʹÓÃÆäËû³ÌÐò¿ª·¢ÓïÑԺͻ·¾³Ò»¸öºÜ´óµÄ²î±ðÊÇ£¬½ð×ÖËþ VBA ¿ª
33
½ð×ÖËþ¾ö²ß½»Ò×ϵͳ¸ß¼¶½Ì³Ì
·¢±ØÐëʱ¿ÌÀμǣ¬¿ª·¢µÄÄ¿µÄÊǽâ¾öÎÊÌ⣬½â¾öÎÊÌâµÄ¹Ø¼üÔÚÓÚʹÓÃÒÑÓеŦÄÜ£¬²¹³äºÍ¿ª·¢È±·¦»òÕߺÜÄÑÓõŦÄÜ£¨ÀýÈçijЩº¯Êý£©£¬²ÅÊÇÎÒÃÇʹÓýð×ÖËþ½»Ò× ºÍVBA ½øÐпª·¢µÄÄ¿µÄ¡£ÕâÒ»ÇеÄǰÌá¾ÍÊÇÊìϤ½ð×ÖËþ¶ÔÏóÄ£ÐÍ¡£ÁíÒ»·½Ã棬½ð×ÖËþ¶ÔÏóÄ£ÐͰüÀ¨ÁË´óÁ¿µÄ¶ÔÏó¡¢ÊôÐԺͷ½·¨£¬ÈκÎÈËÒ²²»¿ÉÄܼÇסËùÓеÄÄÚÈÝ£¬Òò´Ë£¬ÊìϤÊÇÖ¸ÊìϤÆä½á¹¹ºÍ×é³É£¬¶ÔÓÚÒ»¸ö¶ÔÏóµÄ¾ßÌå·½·¨ºÍÊôÐÔÔòûÓбØÒª¼Çס£¬ÍêÈ«¿ÉÒÔÔÚ¿ª·¢µÄʱºòͨ¹ý²é¿´°ïÖú²Ëµ¥->VBA±à³ÌÐÅÏ¢À´»ñµÃ°ïÖú¡£ÔÚÕâÀïÎÒÃÇÖ÷ÒªÁоÙ11¸öÎÒÃÇ×î³£Óõ½µÄÄÚ²¿¶ÔÏó¡£
3.4.1Application ¶ÔÏó
Application ¶ÔÏóÊǽð×ÖËþ¶ÔÏóÄ£Ð͵Ä×îÉϲ¿µÄ¶ÔÏ󣬴ú±íÁ˽ð×ÖËþÓ¦ÓóÌÐò±¾Éí¡£Application ¶ÔÏóÌṩÁË´óÁ¿ÊôÐÔ¡¢·½·¨ºÍʼþ£¬ÓÃÀ´²Ù×÷½ð×ÖËþ³ÌÐò£¬ÏÂÃæÎÒÃÇÌôÑ¡Ò»Ð©ÖØÒªµÄÊôÐԺͷ½·¨½éÉÜ£¬²¢Ëæ»ú¸½´ø·¶Àý¡£
£¨1£©¿ò¼ÜÀà·½·¨
¿ò¼ÜÔÚ½ð×ÖËþÖÐÊǸöºÜÖØÒªµÄ¸ÅÄÎÒÃDzÙ×÷½ð×ÖËþÈí¼þ¿´ÅÌ·ÖÎö¶¼ÔÚ¿ò¼ÜÖнøÐУ¬½ð×ÖËþµÄ¸ÅÄîÖУ¬¿ò¼ÜÊÇÕûÌåµÄÒ»¸ö¾Ö²¿µÄ¸ÅÄ±ÈÈçÎÒÃdz£¼ûµÄKÏß¼¼Êõ·ÖÎöͼ±í£¬¾ÍÊÇÒ»¸ö¿ò¼Ü£¬Ã¿¸ö¿ò¼ÜÓÉÈô¸ÉµÄ´°¸ñ×é³É£¬Óйش°¸ñµÄ¶ÔÏóÎÒÃǺóÃæ»¹»áÓнéÉÜ£¬ÒÔKÏß¼¼Êõ·ÖÎö¿ò¼ÜΪÀý£¬Ëü¾ÍÊÇÓÉÒ»¸öÖ÷´°¸ñ£¨KÏßͼ£©¼ÓÏÂÃæÈô¸É¸ö¼¼Êõ·ÖÎö¸±Í¼×é³É¡£
ActivateFrame ¼¤»î»òÕß´ò¿ªÒ»¸öÖ¸¶¨µÄ¿ò¼Ü¡£ IsActivateFrame È·¶¨Ò»¸ö¿ò¼ÜÊÇ·ñ¼¤»îÏÔʾ״̬¡£
GetActiveFrameName µÃµ½µ±Ç°¼¤»îµÄ¿ò¼ÜÃû³Æ£¬Èô¼¤»î´°¿Ú²»ÊÇ¿ò¼Ü£¬ÄÇô·µ»Ø¿Õ´® ActivateFrameWithCode ÒÔÖ¸¶¨´úÂëºÍÖÜÆÚ¼¤»î»òÕß´ò¿ªÒ»¸öÖ¸¶¨µÄ¿ò¼Ü¡£ ¾ÙÀý:
'Èç¹ûûÓдò¿ªkÏß¼¼Êõ·ÖÎöͼ±í¿ò¼Ü£¬¾Í´ò¿ª if Application.isActivateFrame(\ Call application.ActivateFrame(\ end if
£¨2£©¶¨Ê±Æ÷
Èç¹ûÎÒÃÇÐèÒª½ð×ÖËþ¶¨Ê±Ã¿¸ôÒ»¶Îʱ¼äÍê³ÉijЩÊÂÇ飬±ÈÈçµ½ÁËij¸öʱ¼äµã¹Ø±ÕÈí¼þ£¬Ã¿¸ô10ÃëÏÂίÍÐÒ»±Ê½»Ò×£¬Õâ¾ÍÐèÒª¶¨Ê±Æ÷ÁË¡£
¾ÙÀý£º
¡®VBAÒýÇæ¿ªÆôʱÔËÐиÃʼþ Sub Application_VBAStart()
Call Application.SetTimer(0,2*1000) 'ÉèÖÃÒ»¸ö0ºÅ¼ÆÊ±Æ÷£¬¼ä¸ô2ÃëÖ´ÐÐÒ»´Î Call Application.Settimer(9,5*1000) 'ÉèÖÃÒ»¸ö9ºÅ¼ÆÊ±Æ÷£¬¼ä¸ô5ÃëÖ´ÐÐÒ»´Î End Sub
34
½ð×ÖËþ¾ö²ß½»Ò×ϵͳ¸ß¼¶½Ì³Ì
'ÏÂÃæµÄ¹ý³ÌÊǼÆÊ±Æ÷Ñ»·Ìå,ÎÒÈüÆÊ±Æ÷ÏÔʾÿ´Î´¥·¢µÄʱ¼ä£¬Äã¿´¿´ÊDz»ÊǼä¸ôÉ趨µÄÃëÊý¾Í´¥·¢¡£ Sub Application_Timer(ID) If ID=0 then
Application.msgout Cdate(time) & \ºÅ¼ÆÊ±Æ÷´¥·¢ÁË\ end if If ID=9 then
Application.msgout Cdate(time) & \ºÅ¼ÆÊ±Æ÷´¥·¢ÁË\ end if End Sub
ÌØ±ðÐèҪעÒâµÄµØ·½£º
1¡¢¼ÆÊ±Æ÷Ò»µ©ÉèÖã¬Èç¹û²»ÏÔʽÏú»Ù£¬ÏÂ´ÎÆô¶¯vbaʱÒÀÈ»»áÉúЧµÄ¡£ ËùÒÔ£¬ÄãÒª¼ÇסÔÚApplication_VBAEndʼþÖÐʹÓÃKilltimerÀ´Ïú»Ù¼ÆÊ±Æ÷¡£
2¡¢Application_VBAStartÖ»ÄÜÓÐÒ»¸ö£¬Äã²»ÒªÔÚ¶à¸öÄ£¿éÖÐÓµÓжà¸övbastartʼþ£¬ÄÇÑùϵͳ¾Í»á³ö´íµÄ¡£
£¨3£©MsgOut
ÏûÏ¢´°¿ÚÏÔʾÏûÏ¢£¬¿ÉÒÔÓøú¯Êý½øÐÐÓû§ÏûÏ¢Ìáʾ»òÕß½øÐе÷ÊÔ¹¤×÷¡£ÀýÈç Application.MsgOut(\ÄãºÃ\£¬½«µ¯³öÏûÏ¢´°¿ÚÏÔʾ×Ö·û´®¡£
£¨4£©ClearMsg
Çå³ýÏûÏ¢´°¿ÚµÄËùÓÐÏÔʾÎı¾ £¨5£©PostMessage
·¢ËÍϵͳÏûÏ¢£¬·¢ËÍÍê±ÏºóÖ±½Ó·µ»Ø¡£ÏûÏ¢²ÎÊýÒ»°ãÊÇϵͳµÄ²Ëµ¥ÃüÁî»òÕßһЩϵͳÃüÁî¡£±ÈÈç Îļþ->Í˳ö²Ëµ¥µÄÃüÁîIDÊÇ57665,Òò´ËֻҪʹÓøÃÃüÁî¾Í¿ÉÒÔÈýð×ÖËþÍ˳ö,ʾÀý:
application.PostMessage(57665) ÏÂÃæÊÇÎÒÃdz£ÓõÄһЩ²Ëµ¥µÄID Í˳ö¹Ø±Õ½ð×ÖËþ 57665 ˢл¦ÉîÀ©Õ¹Í³¼ÆÊý¾Ý 33898 Í£Ö¹VBAÒýÇæ 32797 ´ò¿ªÈ«¾Ö±äÁ¿Êý¾Ý¿â 33179 ½»Òײ˵¥->ÕË»§´°¿Ú 33821 ½»Òײ˵¥->½»Ò×״̬ 33829 ½»Òײ˵¥->µÇ¼½»Òׯ½Ì¨ 33846 ½»Òײ˵¥->³Ö²Ö¼°ÕË»§»ã×Ü 33956
35
½ð×ÖËþ¾ö²ß½»Ò×ϵͳ¸ß¼¶½Ì³Ì
½»Òײ˵¥->ͼ±í³Ìʽ»¯½»Ò× 33873 ½»Òײ˵¥->ºǫ́³Ìʽ»¯½»Ò× 33228 ¹¤¾ß²Ëµ¥->Êý¾Ý²¹³ä 33882 ¹¤¾ß²Ëµ¥->Êý¾Ý->Êý¾Ý¹ÜÀíÆ÷ 454 ¹¤¾ß²Ëµ¥->ÊÖ»úÔ¶³Ì¼à¿Ø 34005 ²é¿´²Ëµ¥->È«ÆÁÏÔʾ 32920 ²é¿´²Ëµ¥->ˢР32883 ·ÖÎö²Ëµ¥->×Ô¶¨ÒåÊý¾Ý 33478 »Ïß¹¤¾ßÀ¸ÃüÁî ÖØÖûÏß 59800 Ïß¶Î 59808
3.4.2Order¶ÔÏó
¶ÔÏó¸ºÔ𶨵¥¹ÜÀíºÍ²éѯµÈ²Ù×÷£¬½ÓÊÕίÍзþÎñÆ÷·¢ËÍÀ´µÄ¸÷ÖÖÕÊ»§³Ö²ÖÐÅÏ¢¡£¸ÃOrder¶ÔÏó»¹Ö§³Ö¶àÕÊ»§µÄϵ¥Ä£Ê½£¬Óû§¿ÉÒÔÔÚÉÁµçϵ¥Ê±½Ø»ñ¸Ãʼþ£¬²¢´¦Àí³É×Ô¼ºµÄ²Ù×÷·½Ê½ÒÔ´ïµ½¿ÉÒÔʵÏÖ±ÈÈçÓ®Ëðϵ¥µÄÄ¿µÄ¡£³ý´ËÖ®Í⣬¸Ã¶ÔÏó»¹Ö§³Ö¶àÕÊ»§²Ù×÷¡£¸Ã¶ÔÏóÊǽð×ÖËþ³ÌÐò»¯½»Ò××î³£ÓõĶÔÏó£¬ÖØÒª³ÌÐò²»ÑÔ¶øÓ÷¡£
ÏÂÃæÎÒÃÇÖ÷Òª½éÉÜһЩ³£ÓõÄÊôÐԺͷ½·¨£¬¸ü¶àµÄÇëÓû§²Î¿¼ °ïÖú²Ëµ¥->VBA±à³ÌÐÅÏ¢->ÄÚ²¿¶ÔÏó
Ö÷ÒªÊôÐÔ£º
£¨1£©Holding2:µÃµ½µ±Ç°Ö¸¶¨ÕÊ»§µÄ³Ö²ÖÆ·ÖÖÊýÁ¿
£¨2£©OrderNum2:µÃµ½ËùÓе±Ç°ÓÐЧµÄδ³É½»ºÏԼƷÖÖÊýÁ¿
£¨3£©OrderQueue:˳ÐòÖ´ÐÐϵ¥³É½»£¬¼´°´Î¯ÍÐ˳Ðò³É½»±¨µ¥£¬¿ÉÒÔÓÃÓÚÆ½²Ö·´ÊÖ£¬Ì×ÀûµÈίÍж¯×÷ Ö÷Òª·½·¨: Account: Account2: Buy: Sell:
µÃµ½µ±Ç°Ä¬ÈÏÕÊ»§ÐÅÏ¢ µÃµ½Ö¸¶¨µÄÕÊ»§ÐÅÏ¢
¿ª¶à²Ù×÷ ƽ¶à²Ù×÷
¿ª¿Õ²Ù×÷
BuyShort: SellShort:
ƽ¿Õ²Ù×÷ Ö´Ðг·µ¥²Ù×÷
ȡָ¶¨Ë÷ÒýµÄÖ¸¶¨ÕÊ»§µÄºÏÔ¼³Ö²ÖÐÅÏ¢
CancelOrder: HoldingInfo2:
HoldingInfoByCode2:ȡָ¶¨Æ·ÖֵijֲֺÏÔ¼ÐÅÏ¢ OrderInfo2:
ȡָ¶¨Ë÷ÒýµÄδ³É½»ºÏÔ¼ÐÅÏ¢
36
Ïà¹ØÍÆ¼ö£º