커뮤니티

자동매매식 좀 부탁드립니다.

프로필 이미지
wkri
2026-05-30 19:50:42
25
글번호 232222

이거는 자동 매매식이고여........ 밑에 충족하는 종목을 매수 할수 있도록 좀 부탁드립니다.


var timer5 = 2; //5초

var 매수금 = 100000;

var OrderList = [];

var MKList = [];

var req;


function Main_OnStart()

{

   //1번 타이머, 1초

      Main.SetTimer(1, timer5*1000);

  // 오늘 매수한 종목 관리 배열 초기화

   MKList = [];

}



function Main_OnTimer(nEventID)

{

      var d = new Date();

      YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();

      HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();


    if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 151500)

      {

            //종목검색 수행

            Main.ReqPowerSearch("최고")      

      }


      if (nEventID == 2)

      {

            Main.ReqMarketData(OrderList[req]);

      }

}


function Main_OnRcvItemList(aItemList, nCount)

{

      Main.KillTimer(1);


      OrderList = [];

      if (nCount >= 1)

      {

            

            if (MKList.length == 0)

            {

                  OrderList = aItemList;

            }

            else

            {

                  for (var a = 0; a < nCount; a++)

                  {

                        var Add = true;

                        for (var b = 0; b < MKList.length; b++)

                        {

                              if (aItemList[a] == MKList[b].code)

                              {

                                    Add = false;            

                              }

                        }

                        if (Add == true && !IsStockInAccount(aItemList[a]))

                        {

                              OrderList.push(aItemList[a]);      

                        }

                  }

            }

      }

            

      if (OrderList.length == 0)

      {

            Main.SetTimer(1, timer5*1000);      

      }

      else

      {

            req = 0;

            Main.ReqMarketData(OrderList[req]);

      }

}


function Main_OnRcvMarketData(MarketData)

{

    if (MarketData.code == OrderList[req])

      {

            MKList.push(MarketData);

            

      // 계좌에 같은 종목이 있는지 확인

      if (!IsStockInAccount(MarketData.code)) {

         // 계좌에 없는 경우에만 매수


     Account1.OrderBuy(MarketData.code,1,0,1);

  //Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1);

  // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0);

        //지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다.

            

         Main.MessageList(MarketData.code + " 주식을 매수합니다.");

      } else {

         Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다.");

      }


            

   req = req+1;      

            if (req < OrderList.length)            

            {

                  var aa = Main.ReqMarketData(OrderList[req]);

                  if (aa == -1)

                  {

                        Main.SetTimer(2, 15000);      

                  }

            }            

            else

            {

                  Main.SetTimer(1, timer5*1000);            

            }

      }

}


function IsStockInAccount(stockCode) {

   // 계좌에 해당 종목이 있는지 확인하는 함수

   var numberOfBalances = Account1.GetTheNumberOfBalances();

   for (var i = 0; i < numberOfBalances; i++) {

      Account1.SetBalance(i);

      if (stockCode == Account1.Balance.code) {

         return true; // 계좌에 같은 종목이 있으면 true 반환

      }

   }

   return false; // 계좌에 같은 종목이 없으면 false 반환

}













--위에자동매매식에서 밑에 종목 검색에 일치하는 종목매수 자동매매식 좀 알려주세요 그리고  밑에식에 충족시 1분봉 100억이 들어오고 매도까지 다른 종목은 매수 안되게 부탁드립니다


<밑에식은 3가지가 동시 돌파하는 종목 검색식입니다.>












input : P(3);

var : cnt(0),sum(0),mav(0);

Array : CC[100](0);


if Bdate != Bdate[1] and

(DayOfWeek(Bdate)< DayOfWeek(Bdate[1]) or

DateToJulian(Bdate) >= DateToJulian(Bdate[1])+7) Then

{

for cnt = 99 downto 1

{

     CC[cnt] = CC[cnt-1];

}

}


CC[0] = C;



if CC[P-1] > 0 Then

{

sum = 0;

for cnt = 0 to P-1

{

sum = sum+CC[cnt];

}

mav = sum/P;


if L < mav and CrossUp(C,mav) Then

Find(1);

}




2

input : P(10);

var : cnt(0),sum(0),mav(0);

Array : CC[100](0);


if Bdate != Bdate[1] and

(DayOfWeek(Bdate)< DayOfWeek(Bdate[1]) or

DateToJulian(Bdate) >= DateToJulian(Bdate[1])+7) Then

{

for cnt = 99 downto 1

{

     CC[cnt] = CC[cnt-1];

}

}


CC[0] = C;



if CC[P-1] > 0 Then

{

sum = 0;

for cnt = 0 to P-1

{

sum = sum+CC[cnt];

}

mav = sum/P;


if L < mav and CrossUp(C,mav) Then

Find(1);

}




3

input : P(3);

var : cnt(0),sum(0),mav(0);

Array : CC[100](0);


if Bdate > Bdate[1]+30 Then

{

for cnt = 99 downto 1

{

     CC[cnt] = CC[cnt-1];

}

}


CC[0] = C;



if CC[P-1] > 0 Then

{

sum = 0;

for cnt = 0 to P-1

{

sum = sum+CC[cnt];

}

mav = sum/P;


if L < mav and CrossUp(C,mav) Then

Find(1);

}

답변 0