시스템트레이딩

리스크 관리 EA - 메타트레이더 4를 위한 전문 도구
MetaTrader4
리스크 관리 EA - 메타트레이더 4를 위한 전문 도구

최고의 결과를 얻으려면 본인만의 기술적 분석(TA)을 하셔야 합니다. EA가 거래를 실행할 방향을 결정하는 것은 여러분의 몫입니다. 롱과 숏 포지션 모두 가능하지만, 헤징은 작동하지 않아요. EA는 설정이 발생할 때까지 기다리며 거래를 자동으로 실행해줍니다. 이 EA는 거래량과 레벨을 분석하고 거래를 어디에 배치할지 결정합니다. 레벨(Level)과 길이(Length)는 되돌림의 레벨과 길이에 해당합니다. 길이가 길어질수록 더 많은 포지션을 스케일 인하고, 레벨이 클수록 더 깊은 되돌림을 찾아갑니다. Close PL은 EA가 모든 포지션을 닫기 전 최대 떠 있는 손실입니다. 이익과 리스크 한도는 주어진 신호에서 달성하려는 이익/리스크의 양을 지정하기 위해 사용해야 할 파라미터입니다. 자본 파라미터는 EA가 부착되기 전의 잔액으로 설정됩니다. 만약 떠 있는 손실이나 이익이 있다면 조정할 수 있지만, 기본값인 0은 EA 부착 전의 초기 잔액으로 간주됩니다. 여러 통화를 거래하고 있다면 헤징 기능은 작동하지 않으니, 헤징 기능을 사용하려면 단일 통화만 거래해야 합니다. 헤징 기능은 헤징 레벨에 도달했을 때 포지션을 헤지합니다. 헤징 레벨은 남아 있는 리스크의 비율을 의미합니다. Maxsize는 EA가 스케일 인할 최대 포지션 크기이며, Layers는 Maxsize를 나누고 싶은 포지션 수입니다. 예를 들어, 1랏을 사고 10번에 걸쳐 스케일 인하고 싶다면 Maxsize = 1, Layers = 10으로 설정합니다.

2023.04.08
연속 손실 시, N분간 거래 중단하기 - 메타트레이더 4의 팁
MetaTrader4
연속 손실 시, N분간 거래 중단하기 - 메타트레이더 4의 팁

안녕하세요, 트레이더 여러분! 오늘은 연속으로 손실이 발생했을 때 거래를 잠시 중단해야 할 필요성에 대해 이야기해볼게요. 때로는 시장의 급격한 변동성이나 혼조세 때문에 손실이 이어질 수 있습니다. 이런 상황에서는 잠시 거래를 멈추고 자신을 돌아보는 시간을 가지는 것이 중요합니다. 왜 거래를 중단해야 할까요? 연속적인 손실이 발생하면, 시장이 현재의 전략과 맞지 않거나, 심리적으로 불안정해질 수 있습니다. 이러한 상황에서 계속 거래를 진행하면 더 큰 손실을 초래할 수 있기 때문에, 다음과 같은 경우에는 거래를 중단하는 것이 좋습니다: 시장 불안정성: 급격한 가격 변동이 잦은 경우 자신의 감정: 감정적으로 힘든 상황에서의 트레이딩은 위험할 수 있습니다 전략 재검토: 현재 사용하고 있는 전략이 유효한지 다시 살펴볼 필요가 있습니다 어떻게 거래를 재개할까요? 거래를 중단한 후에는 다음과 같은 방법으로 다시 시작할 수 있습니다: 시장 분석: 현재 시장 상황을 철저히 분석해 보세요. 감정 조절: 감정이 가라앉을 때까지 기다리세요. 전략 점검: 기존의 전략이 여전히 유효한지 확인해보세요. 이런 과정을 통해 더 나은 거래를 할 수 있을 것입니다. 항상 차분한 마음으로 트레이딩하시길 바랍니다!

2023.03.04
변동성이 큰 시장에서의 그리드 트레이딩 알고리즘 - 메타트레이더 4를 위한 최고의 EA(자동매매)
MetaTrader4
변동성이 큰 시장에서의 그리드 트레이딩 알고리즘 - 메타트레이더 4를 위한 최고의 EA(자동매매)

안녕하세요, 트레이더 여러분! 오늘은 변동성이 큰 시장에서 사용할 수 있는 그리드 트레이딩 알고리즘에 대해 이야기해보려고 합니다. 이 알고리즘은 메타트레이더 4에서 사용할 수 있는 전문 트레이딩 도구인데요, 여러분의 수익을 극대화하는 데 큰 도움을 줄 수 있습니다. 입력 파라미터에 대해 살펴볼까요? Tp는 수익을 계산하는 기준으로, Tp × 투자 금액에 도달했을 때 이익을 실현합니다. 추천하는 Tp 값은 0.01에서 0.1 사이입니다. SlowMovingAverage는 이동 평균의 기간을 설정하여 시장의 추세를 판단하는 데 사용됩니다. Multiplier는 거래량을 결정하는 요소로, 다음 그리드 주문은 Multiplier × 마지막 주문의 규모로 설정됩니다. TimeFrame은 분 단위의 시간 프레임을 지정합니다. (추천: 1시간 - 60분 또는 15분 - 15분) 이 전문가 자문(EA)은 TotalOrderLots() 함수가 포함되어 있으며, 이는 사용된 모든 롯트 수를 반환합니다. 또한, CalcMaxLot 함수는 거래 가능한 최대 롯트 수를 반환합니다. CalcGridLot 함수는 주어진 파라미터에 따라 시작 롯트를 반환합니다. 특히, 하락형 및 상승형 포지션을 판단하는 기능이 포함되어 있어 특정 캔들스틱 패턴이 발생하면 true 값을 반환합니다. OpenOrderProfits 함수는 열린 주문의 모든 수익을 반환하며, CloseallOrders 함수는 모든 주문을 닫는 역할을 합니다 (여러 번 확인함). 마지막으로 이 EA는 ATR 값을 기반으로 그리드 주문을 배치합니다. 변동성이 큰 시장에서 이 알고리즘을 활용해 보세요!

2023.01.27
AK-47 스캘퍼 EA: 메타트레이더 4를 위한 효율적인 자동 거래 도구
MetaTrader4
AK-47 스캘퍼 EA: 메타트레이더 4를 위한 효율적인 자동 거래 도구

1. 입력 매개변수 #define ExtBotName "AK-47 스캘퍼 EA" //봇 이름 #define  Version "1.00" //--- 입력 매개변수 설정 extern string  EASettings        = "---------------------------------------------"; //-------- <EA 설정> -------- input int      InpMagicNumber    = 124656;   //매직 넘버 extern string  TradingSettings   = "---------------------------------------------"; //-------- <거래 설정> -------- input double   Inpuser_lot       = 0.01;     //로트 수 input double   InpSL_Pips        = 3.5;      //손절 (핍 단위) input double   InpMax_spread     = 0.5;      //최대 허용 스프레드 (핍 단위) (0 = 플로팅) extern string  MoneySettings     = "---------------------------------------------"; //-------- <자금 설정> -------- input bool     isVolume_Percent  = true;     //볼륨 비율 허용 input double   InpRisk           = 3;        //계좌 잔고 대비 리스크 비율 (%) input string   TimeSettings      = "---------------------------------------------"; //-------- <거래 시간 설정> -------- input bool     InpTimeFilter     = true      //거래 시간 필터 input int      InpStartHour      = 2;         //시작 시간 input int      InpStartMinute    = 30;        //시작 분 input int      InpEndHour        = 21;        //종료 시간 input int      InpEndMinute      = 0         //종료 분 2. 로컬 변수 초기화 //--- 변수들 int      Pips2Points;               // 슬리피지  3 pips    3=points    30=points double   Pips2Double;               // 손절 15 pips    0.015      0.0150 int      InpMax_slippage   = 3;     // 최대 슬리피지 허용 핍 수. bool     isOrder           = false; // 단 하나의 주문만 오픈 int      slippage; string   strComment        = ""; 3. 메인 코드 a/ 전문가 초기화 함수 int OnInit()   { //---      //3 또는 5 자리 감지    //핍과 포인트    if (Digits % 2 == 1)    {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else    {           Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }    //---    return(INIT_SUCCEEDED);   } b/ 전문가 틱 함수 void OnTick()   { //---      if(IsTradeAllowed() == false)      {       Comment("AK-47 EA\n거래 불가.");       return;      }             MqlDateTime structTime;        TimeCurrent(structTime);        structTime.sec = 0;               //시작 시간 설정        structTime.hour = InpStartHour;        structTime.min = InpStartMinute;              datetime timeStart = StructToTime(structTime);               //종료 시간 설정        structTime.hour = InpEndHour;        structTime.min = InpEndMinute;        datetime timeEnd = StructToTime(structTime);               double acSpread = MarketInfo(Symbol(), MODE_SPREAD);        StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);              strComment = "\n" + ExtBotName + " - v." + (string)Version;       strComment += "\nGMT 시간 = " + TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS);       strComment += "\n거래 시간 = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "h" + (string)InpEndMinute + "]";              strComment += "\n현재 스프레드 = " + (string)acSpread + " 포인트";       strComment += "\n현재 스톱레벨 = " + (string)StopLevel + " 포인트";              Comment(strComment);          //값 업데이트       UpdateOrders();              TrailingStop();              //거래 시간 체크       if(InpTimeFilter)       {          if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd)          {             if(!isOrder) OpenOrder();          }       }       else       {          if(!isOrder) OpenOrder();       }   } 3.1 신호를 계산하여 주문 전송 void OpenOrder(){       //int OrdType = OP_SELL;//-1;    double TP = 0;    double SL = 0;    string comment = ExtBotName;    //로트 수 계산    double lot1 = CalculateVolume();       //if(OrdType == OP_SELL){       double OpenPrice = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits);       SL = NormalizeDouble(Ask + StopLevel * _Point + InpSL_Pips/2 * Pips2Double, Digits);              if(CheckSpreadAllow())                                    //스프레드 체크       {          if(!OrderSend(_Symbol, OP_SELLSTOP, lot1, OpenPrice, slippage, SL, TP, comment, InpMagicNumber, 0, clrRed))          Print(__FUNCTION__,"--> 주문 전송 오류 ",GetLastError());       }    //} } 3.2 거래량 계산 double CalculateVolume()   {    double LotSize = 0;    if(isVolume_Percent == false)      {       LotSize = Inpuser_lot;      }    else      {       LotSize = (InpRisk) * AccountFreeMargin();       LotSize = LotSize /100000;       double n = MathFloor(LotSize/Inpuser_lot);       //Comment((string)n);       LotSize = n * Inpuser_lot;       if(LotSize < Inpuser_lot)          LotSize = Inpuser_lot;       if(LotSize > MarketInfo(Symbol(),MODE_MAXLOT))          LotSize = MarketInfo(Symbol(),MODE_MAXLOT);       if(LotSize < MarketInfo(Symbol(),MODE_MINLOT))          LotSize = MarketInfo(Symbol(),MODE_MINLOT);      }    return(LotSize);   } 3.3 EA는 "트레일링 스탑" 기능이 있으며, 가격이 변할 때마다 SL이 변경됩니다.   void TrailingStop()   {    for(int i = OrdersTotal() - 1; i >= 0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if((OrderMagicNumber() == InpMagicNumber) && (OrderSymbol() == Symbol()))   //_Symbol))            {             //매도 주문의 경우             if(OrderType() == OP_SELL)               {                   //--가격 변동 시 SL 계산                   double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double;                   if(SL_in_Pip > InpSL_Pips){                         double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + InpSL_Pips * Pips2Double, Digits);                         if(!OrderModify(OrderTicket(), OrderOpenPrice(), newSL, OrderTakeProfit(), 0, clrRed))                         {                            Print(__FUNCTION__,"--> 주문 수정 오류 ",GetLastError());                         {                            continue;                         }               }                          //매도 스탑 주문의 경우             else if(OrderType() == OP_SELLSTOP)               {                   double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double;                                      if(SL_in_Pip < InpSL_Pips/2){                          double newOP = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits);                      double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + (InpSL_Pips/2) * Pips2Double, Digits);                                           if(!OrderModify(OrderTicket(), newOP, newSL, OrderTakeProfit(), 0, clrRed))                          {                             Print(__FUNCTION__,"--> 미결 주문 수정 오류!", GetLastError());                         continue;                          }                          }               }                           }      }   }

2023.01.14
MT4에서 손쉽게 거래 관리하는 XP Forex 트레이드 매니저
MetaTrader4
MT4에서 손쉽게 거래 관리하는 XP Forex 트레이드 매니저

안녕하세요, 트레이더 여러분! 오늘은 MT4에서 거래를 간편하게 관리할 수 있는 XP Forex 트레이드 매니저에 대해 알아보겠습니다. 이 툴은 열린 주문을 효과적으로 관리할 수 있도록 도와주는 프로그램인데요, 새로운 주문을 열면 자동으로 손절매(Stop Loss)와 이익 실현(Take Profit)을 설정해줍니다. 가격이 움직일 때, 이 프로그램은 손절매를 본전으로 이동시키거나(손절매 = 오픈 가격) 계속해서 손절매를 이동시켜 수익을 보호할 수 있습니다. XP Forex 트레이드 매니저는 현재 심볼에서만 주문을 제어할 수도 있고(EA가 작동하는 곳), 모든 열린 주문을 제어할 수도 있습니다. 또한, 브로커에게 손절매와 이익 실현을 숨길 수 있는 전략도 제공합니다. 주요 기능 거래에 대한 손절매 및/또는 이익 실현을 핍 단위로 설정 가격에 따라 손절매를 따라가는 트레일링 스탑 기능 선택한 거리에서 손절매를 본전으로 이동하는 기능 손절매와 이익 실현은 브로커에 의해 관리될 수도 있고, 스텔스 모드에서 브로커에게 숨겨질 수도 있습니다. 파라미터 설정 SLTP 파라미터: Stop Loss – 거래의 손절매 핍 수 Take Profit – 거래의 이익 실현 핍 수 브레이크 이븐: UseBreakEven (true/false) – 열린 거래에 대해 브레이크 이븐 기능을 사용할지 여부 BEActivation – 브레이크 이븐 기능이 활성화되는 핍 수 BELevel – 브레이크 이븐 기능으로 설정된 손절매의 추가 거리 트레일링 스탑: UseTrailingStop (true/false) – 열린 거래에 대해 트레일링 스탑 기능을 사용할지 여부 TSStart – 트레일링 스탑 기능이 활성화되는 핍 수 TSStep – 새로운 손절매와 현재 손절매 간의 최소 핍 차이 TSDistance – 트레일링 스탑 기능으로 설정된 손절매의 현재 가격에서의 거리 행동 설정: StealthMode (true/false) – 손절매와 이익 실현 레벨을 브로커에게 숨기고, EA가 이 레벨에서 거래를 프로그램적으로 종료 OnlyCurrentPair (true/false) – 현재 차트의 심볼에서만 거래를 관리할지 여부 정보: 모든 거래 파라미터와 기능은 EA의 파라미터에서 설정할 수 있습니다. XP Forex 트레이드 매니저는 차트에 현재 일일 손익과 계좌 통화에 대한 정보를 표시해줍니다.

2023.01.10
MT4에서 손쉬운 거래 관리를 위한 Forex Trade Manager Grid 소개
MetaTrader4
MT4에서 손쉬운 거래 관리를 위한 Forex Trade Manager Grid 소개

안녕하세요, 트레이더 여러분! 오늘은 MT4에서 거래를 보다 효과적으로 관리할 수 있도록 도와주는 Forex Trade Manager Grid에 대해 소개해드릴게요. 이 툴은 주문을 관리하고 목표를 달성하는 데 큰 도움이 됩니다. 먼저 첫 번째 주문을 이익 실현가(Take Profit)와 함께 설정한 후, EA를 실행하고 원하는 이익(pips)을 매개변수에 설정하면 됩니다. 이후 EA가 자동으로 포지션을 관리하며 설정한 이익 수익을 위한 pips를 모아줍니다. 이 전략은 현재 거래 쌍에서 열린 수동 거래를 관리하는 방법입니다. 전략은 현재 열린 거래에 그리드 관리 방식으로 포지션을 추가하며, 거래 간의 간격(pips)을 선택할 수 있습니다. 최대 15개의 거래까지 추가할 수 있으며, 처음 3개의 거래는 개별 이익 실현가로 관리되고, 4번째 거래부터는 전체 그리드를 공통 수준(손익 분기점)에서 종료합니다. 이익 실현가에 도달하면 거래를 다시 시작할 수 있으며, 손실이 허용된 위험 비율보다 클 경우 전체 사이클이 종료됩니다. 매개변수 설정 추가 거래 매개변수: AddNewTradeAfter – 마지막 거래 이후 그리드에 추가되는 거래 간의 거리(pips) “이익 실현가”: TakeProfit1Total (숫자) – 첫 번째 포지션에서 필요한 총 이익 실현가(pips) TakeProfit1Partitive – 사이클에서 첫 번째 포지션에 대한 초기 이익 실현가(pips) TakeProfit1Offset – 첫 번째 포지션의 마지막 이익 실현가와의 최소 거리(pips) TakeProfit 2/3 – 사이클에서 두 번째/세 번째 포지션에 대한 개별 이익 실현가(pips) TakeProfit 4/5/6/…15Total – 사이클에서 모든 포지션의 총 이익 실현가(pips) “거래 매개변수”: MaxOrders – 그리드에서 허용되는 최대 거래 수 위험 비율 % – 계좌 잔고의 손실 비율(모든 열린 포지션 종료) Lots – EA에 의해 열린 거래의 로트 크기 Slippage – 허용 가능한 슬리피지(포인트) 정보: 모든 거래 및 기능에 대한 매개변수는 EA의 설정에서 조정할 수 있습니다. Forex Trade Manager Grid는 차트에 현재 사이클의 이익/손실을 pips 및 계좌 통화로 표시해줍니다.

2023.01.10
평균 회귀 전략: MetaTrader 4를 위한 완벽한 EA(자동매매)
MetaTrader4
평균 회귀 전략: MetaTrader 4를 위한 완벽한 EA(자동매매)

안녕하세요, 트레이더 여러분! 오늘은 평균 회귀 전략에 대해 이야기해보겠습니다. 이 전략은 주로 일간 차트에서 주요 외환 쌍에 가장 잘 작용하는데요, 여러 번의 거래를 통해 수익을 극대화할 수 있는 방법입니다. 전략 사용 전 체크리스트 먼저 데모 계좌에서 시험해보세요. 이 EA는 오픈 캔들의 가격으로만 거래합니다! 거래 중 손실이 발생할 때 로트 크기를 증가시키고 싶지 않다면, 'IncreaseFactor=0'으로 설정하세요. 이제 여러분이 사용할 수 있는 주요 입력값들을 살펴보겠습니다: 입력값 설정 Use_TP_In_Money: 금액으로 이익 실현 사용 (값: true/false). TP_In_Money: 금액으로 이익 실현 (값: 10-100). Use_TP_In_percent: 비율로 이익 실현 사용 (값: true/false). TP_In_Percent: 비율로 이익 실현 (값: 10-100). ------------여러 거래를 위한 자금 트레일링 스탑---------------------- Enable_Trailing: 자금으로 트레일링 활성화 (값: true/false). Take Profit In Money: 현재 통화로 이익 실현 (값: 25-200). Stop Loss In Money: 현재 통화로 손실 제한 (값: 1-20). -------------------------------------------------------------------------------------- Exit: 추세가 불리할 때 거래 종료 (값: true/false). BarsToCount: 카운트할 바 수 (값: 1-20). Lots: 로트 크기 (값: 0.01-1). Lots size Exponent: 로트 크기 지수 (값: 1.01-2). IncreaseFactor: 거래 손실 시 로트를 얼마나 증가시킬지 (값: 0.001-0.1). Stop_Loss: 손실 제한 (값: 30-500). / 여러 거래 시 600으로 설정. MagicNumber: 매직 넘버 (값: 1-100000). TakeProfit: 이익 실현 (값: 50-200). / 여러 거래 시 600으로 설정. FastMA: 빠른 이동평균 (값: 1-20). SlowMA: 느린 이동평균 (값: 50-200). Mom_Sell: 모멘텀 매도 트리거 (값: 0.1-0.9). Mom_Buy: 모멘텀 매수 트리거 (값: 0.1-0.9). ---------------------손실 제한 관리----------------------------- UseEquityStop: (값: true/false). TotalEquityRisk: (값: 0.01-20). ------------------------------------------------------------------------------- Max_Trades: 최대 거래 수 (1-12). FractalNum: 고점과 저점 수 (값: 1-10). ----------------단일 거래 시 설정------------------------ ///////////////////////////////////////////////////////////////////// USETRAILINGSTOP: 트레일링 스탑 사용 여부 (값: true/false). WHENTOTRAIL: 트레일링 시점 (값: 40-100). TRAILAMOUNT: 트레일링 금액 (값: 40-100). Distance From Candle: 캔들과의 거리 (값: 1-100). USECANDELTRAIL: 캔들 트레일 사용 여부 (값: true/false). X: 캔들 수 (값: 1-100). USEMOVETOBREAKEVEN: 손익 분기점으로 이동 활성화 (값: true/false). WHENTOMOVETOBE: 손익 분기점 이동 시점 (값: 1-30). PIPSTOMOVESL: 스탑로스를 이동할 핍 수 (값: 1-30). 이 EA는 몇 달마다 최적화를 해주어야 하며, 위의 입력값을 그대로 사용해야 합니다. 또한, 헤징 그리드 EA로 사용할 수도 있고, 단일 거래 EA로도 활용할 수 있습니다. 백테스트 수행 방법은 여기를 클릭하세요!

2022.10.26
새로운 바와 캔들 시작 감지하기 - 메타트레이더 4를 위한 팁
MetaTrader4
새로운 바와 캔들 시작 감지하기 - 메타트레이더 4를 위한 팁

안녕하세요, 여러분! 오늘은 메타트레이더 4에서 새로운 바가 시작되는 시점을 감지하는 방법에 대해 이야기해볼게요. 전문가 어드바이저(Expert Advisor, EA)를 사용하고 있을 때, 새로운 틱(tick) 인용이 도착하면 메타트레이더 터미널에서 기본적으로 OnTick() 이벤트 핸들링 함수가 호출되는데, 새로운 바가 시작될 때 호출되는 기본 이벤트 핸들링 함수는 따로 없어요. 그렇다면 우리는 어떻게 새로운 바의 시작을 감지할 수 있을까요? 현재 가장 최근 바의 시작 시간을 모니터링하면 됩니다. 이 시간이 변하면 새로운 바가 시작되었다는 신호이니, 이에 반응하여 이벤트를 처리할 수 있죠. 아래에 제공된 샘플 코드는 MQL4와 MQL5 모두에 호환되는 방법을 보여줍니다: // 기본 틱 이벤트 핸들러   void OnTick()   {       // 새로운 바 체크 (MQL4와 MQL5 모두 호환)         static datetime dtBarCurrent  = WRONG_VALUE;                 datetime dtBarPrevious = dtBarCurrent;                          dtBarCurrent  = iTime( _Symbol, _Period, 0 );                 bool     bNewBarEvent  = ( dtBarCurrent != dtBarPrevious );       // 새로운 바 이벤트에 반응하여 처리하기         if( bNewBarEvent )         {             // 첫 틱을 받았는지 확인하고 처리하기                /* 예를 들어, 차트에 처음 부착되었을 때 바가 진행 중일 경우,                         실제로는 새로운 바의 시작이 아닐 수 있습니다. */                if( dtBarPrevious == WRONG_VALUE )               {                   // 첫 틱 또는 바 중간에서 무언가 처리하기...               }               else               {                   // 일반적인 바가 시작될 때 무언가 처리하기...               };       // 위 조건과 관계없이 무언가 처리하기...     }       else     {             // 다른 처리를 하세요...         };       // 다른 작업 수행...   }; 위 코드에서 정적 변수(static variable)는 바의 시작 시간을 추적합니다. 이 변수는 OnTick() 함수에서 반환될 때도 값을 유지하는데, 이는 현재 바의 시작 시간이 변했는지 감지하는 데 중요한 역할을 해요. 또한, EA가 처음 차트에 배치될 때 위 코드는 바가 막 열렸다고 감지하는 점도 유의해야 해요. 이러한 경우에는 특별한 처리가 필요할 수 있습니다. 마지막으로, 저의 코드베이스(CodeBase) 출판물의 소스 코드는 이제 메타에디터(MetaEditor)의 "공개 프로젝트(Public Projects)" 탭에서도 "FMIC"라는 이름으로 확인하실 수 있습니다.

2022.04.24
처음 이전 1 2 3 4 5 6 7 8 9 다음 마지막