시스템트레이딩

듀얼 스탑로스: 숨겨진 스탑로스와 일반 스탑로스를 함께 활용하기
MetaTrader4
듀얼 스탑로스: 숨겨진 스탑로스와 일반 스탑로스를 함께 활용하기

안녕하세요, 트레이더 여러분! 오늘은 포지션을 열 때 가장 중요한 돈 관리에 대해 이야기해볼까요? 트레이딩에서 리스크를 관리하고 자본을 조절하는 데에는 여러 방법이 있지만, 그 중 하나가 바로 특정 마진 손실을 설정하는 것입니다. 많은 트레이더는 포지션에 스탑로스나 이익 실현 가격을 설정하고, 이를 포지션 수정 창에 입력하면, 브로커 서버가 해당 가격에 도달하는 즉시 포지션을 닫아줄 것이라고 생각합니다. 하지만, 사실 이는 정확히 그렇지 않답니다. 브로커의 계좌 유형에 따라 다르기 때문인데요, ECN 계좌의 경우, 브로커에게 스탑로스나 이익 실현 가격을 제시하면, 가격이 해당 한계에 도달했을 때 브로커는 가능한 첫 가격에서 포지션을 종료합니다. 이를 잘 이해하지 못하면, 거래 내역을 다시 한 번 살펴보시길 권장합니다. 거기서 보면, 설정한 가격과 다른 가격에서 일부 주문이 종료되어 예상보다 더 많은 손실이나 이익이 발생한 것을 확인할 수 있을 것입니다. 이 현상은 바로 슬리피지 때문입니다. 또한, 일부 트레이더는 손실 한계를 정확하게 설정할 필요가 없다고 생각하기도 합니다. 이러한 트레이더들을 위해 숨겨진 스탑로스가 탄생했습니다. 이 로봇은 바로 이러한 목적을 위해 설계된 것입니다. 이제 숨겨진 스탑로스와 일반 스탑로스를 함께 사용할 수 있게 되었습니다! 기존처럼 일반 스탑로스를 손쉽게 설정할 수 있습니다. 로봇을 사용하든 수동으로 거래하든 상관없이요. 이 로봇을 새로운 차트에 실행하면, 모든 포지션을 관리할 수 있습니다. 입력 값은 숨겨진 스탑로스와 일반 스탑로스 간의 거리를 결정합니다. 이 값은 포인트 단위로 설정되므로, 주의가 필요합니다.

2021.04.23
스캘퍼 보조기구 v1.0 - 메타트레이더 4을 위한 최고의 도구
MetaTrader4
스캘퍼 보조기구 v1.0 - 메타트레이더 4을 위한 최고의 도구

스캘핑은 전세계 트레이더들 사이에서 가장 인기 있는 거래 전략 중 하나로, 대부분의 트레이더가 최소 한 번은 시도해본 경험이 있습니다. 스캘퍼는 하루에 10번 이상의 거래를 하기 때문에, 각 거래에 대해 손절매(Stop Loss)와 익절(Take Profit)을 설정하는 것이 다소 지루할 수 있습니다. 여러 금융 상품에서 거래하고 손익 분기점(Break Even)을 목표로 한다면, 모든 주문을 관리하는 것은 더욱 복잡해지고 실수할 가능성도 높아집니다. 특히 낮은 시간대(타임프레임)에서 여러 통화쌍을 거래할 경우, 잠깐 자리를 비운 사이에 급격한 가격 변동이 발생할 수 있어 손익 분기점 기회를 놓칠 수 있습니다. 이렇게 빠른 가격 회귀가 발생할 경우, 수익성 있는 거래가 손실로 바뀔 수 있다는 불안감이 항상 따라다닐 것입니다. 이 전문가 도구를 사용하면 손절매와 익절의 금액을 쉽게 설정할 수 있습니다. 거래를 시작하자마자 이 도구는 자동으로 초기 값을 설정하며, 가격이 원하는 방향으로 충분히 이동할 경우 거래는 리스크가 없는 상태가 되거나 손익 분기점으로 조정됩니다. 모든 입력 값은 포인트(POINT) 기준으로 설정됩니다. extern double WhenToMoveToBE /// 가격이 주문 진입점에서 얼마나 떨어져 있어야 EA가 손익 분기점으로 조정할지를 결정합니다. extern double BEAmount /// 손절매의 진입점까지의 거리를 설정합니다.

2021.04.23
목표 손익에 따라 주문 종료하기 - MetaTrader 4의 유용한 도구
MetaTrader4
목표 손익에 따라 주문 종료하기 - MetaTrader 4의 유용한 도구

안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 4에서 사용할 수 있는 유용한 EA(Expert Advisor)에 대해 이야기해보려고 합니다. 이 EA는 목표 수익과 손실을 설정하여 자동으로 주문을 종료해주는 도구입니다. 필요한 입력값 이 EA를 사용하기 위해서는 다음과 같은 세 가지 입력값이 필요합니다: 목표 수익 손실 컷 매직 넘버 코드 초기화 EA가 실행되면 먼저 OnInit() 함수가 호출됩니다. 이 함수에서는 입력값과 변수를 초기화합니다. int OnInit() {    //---    if(inTargetProfitMoney <= 0)      {       Alert("잘못된 입력입니다");       return(INIT_PARAMETERS_INCORRECT);      }    inCutLossMoney = MathAbs(inCutLossMoney) * -1; //---    return(INIT_SUCCEEDED); } 주문 처리 가격 변동이 발생할 때마다 OnTick() 함수가 호출되어 현재의 총 수익 또는 손실을 계산합니다. void OnTick() { //---    double tFloating = 0.0;    int tOrder = OrdersTotal();    for(int i=tOrder-1; i>=0; i--)      {        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))          {          if(OrderMagicNumber() == inMagicNumber)            {             tFloating += OrderProfit()+OrderCommission() + OrderSwap();            }        }    }    if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))      {        fCloseAllOrders();      } } 모든 주문 종료하기 이제 fCloseAllOrders() 함수를 통해 모든 주문을 종료합니다. void fCloseAllOrders() {    double priceClose = 0.0;    int tOrders = OrdersTotal();    for(int i=tOrders-1; i>=0; i--)      {        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))          {          if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))            {              priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);              if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))                {                  Print("경고: 주문 종료 실패");              }            }        }    } } 더 자세한 정보와 MQL4 코드 교육을 원하신다면, 저희 텔레그램에 가입해 주세요! t.me/codeMQL 즐거운 트레이딩 되세요!

2021.03.31
메타트레이더 4에서 트레일링 스탑과 매직넘버 활용하기
MetaTrader4
메타트레이더 4에서 트레일링 스탑과 매직넘버 활용하기

안녕하세요, 트레이더 여러분! 오늘은 메타트레이더 4에서 트레일링 스탑을 설정하는 방법에 대해 이야기해 보려고 합니다. 트레일링 스탑은 우리의 거래를 지원해 주며, 손실을 줄이고 이미 확보한 이익을 보호하는 데 큰 도움을 줍니다. 트레일링 스탑 설정하기 먼저, 트레일링 스탑의 입력 매개변수를 설정하는 코드부터 살펴보겠습니다. input    bool     isTrailingStop = true;  // 트레일링 스탑 활성화 input    int      trailingStart  = 15;    // 트레일링 시작 (핍) input    int      trailingStep   = 5;     // 트레일링 스탭 (핍) input    int      MagicNumber = 0;        // 매직 넘버 전역 변수 선언하기 // 전역 변수 double   myPoint    = 0.0; EA 초기화 함수 이제 EA를 실행하면 OnInit() 함수가 처음으로 실행되고, 이 함수에서 입력 변수를 검증하고 초기화합니다. int OnInit()   {       if (isTrailingStop && trailingStart <= 0){       Alert ("매개변수가 잘못되었습니다");       return(INIT_PARAMETERS_INCORRECT);    }       myPoint     = GetPipPoint(Symbol());       return(INIT_SUCCEEDED);   } 가격 변동 시 OnTick() 함수 실행 가격이 움직일 때마다 OnTick() 함수가 실행되어 setTrailingStop() 함수를 호출합니다. void OnTick()   { //---    setTrailingStop(MagicNumber);      } setTrailingStop() 함수 구현하기 void setTrailingStop(int magicNumber=0){    if (isTrailingStop==false) return;       int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY){             if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                   && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )                 )             {                sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " 손실 업데이트 실패");                }             }          }                   if (OrderType() == OP_SELL){             if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                   && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)                )             {                sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " 손실 업데이트 실패");                }             }       } // 매직넘버 끝    }// for 종료 } GetPipPoint() 함수 핍 포인트를 가져오는 함수도 필요합니다. // GetPipPoint 함수 double GetPipPoint(string pair) {    double point= 0.0;    int digits = (int) MarketInfo(pair, MODE_DIGITS);    if(digits == 2 || digits== 3) point= 0.01;    else if(digits== 4 || digits== 5) point= 0.0001;    return(point); } 질문이 있으신가요? 궁금한 점이 있으시면 댓글로 남겨주세요! 또한, 저희 그룹 공유에 참여하실 수도 있습니다. t.me/codeMQL SignalForex 앱 다운로드 저희는 SignalForex 앱도 제공하고 있습니다. 이 앱을 다운로드하여 사용하시면 더 수익성 있는 거래에 도움이 됩니다! SignalForex 앱 다운로드하기

2021.03.30
MetaTrader 4에서 2 MA 교차로 거래 자동화하기
MetaTrader4
MetaTrader 4에서 2 MA 교차로 거래 자동화하기

안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 4에서 2개의 이동평균(MA) 교차를 이용한 거래 자동화 시스템을 만드는 방법에 대해 이야기해볼게요. 이 자동매매 프로그램을 통해 효율적으로 거래를 수행할 수 있습니다. 1. 입력 변수 정의하기 먼저, 이 EA(자동매매 프로그램)를 만들기 위해 입력 변수를 정의해야 합니다. //--- 입력 파라미터 input    int      period_ma_fast = 8;  // 빠른 MA 기간 input    int      period_ma_slow = 20; // 느린 MA 기간 input    double  takeProfit  = 20.0;  // 이익 실현 (핍) input    double  stopLoss    = 20.0;  // 손절 (핍) input    double  lotSize     = 0.10;  // 로트 크기 input    double  minEquity   = 100.0; // 최소 자본 ($) input    int Slippage = 3;       // 슬리피지 input    int MagicNumber = 889;  // 매직 넘버 2. 전역 변수 정의하기 그 다음으로, 전역 변수를 정의해 보겠습니다. 이 전역 변수는 모든 함수에서 접근할 수 있습니다. // 전역 변수 double  myPoint    = 0.0; int      mySlippage = 0; int      BuyTicket   = 0; int      SellTicket  = 0; 3. EA 초기화 EA가 실행될 때 가장 먼저 호출되는 함수는 OnInit()입니다. 이 함수는 전역 변수를 초기화하고 검증하는 데 자주 사용됩니다. int OnInit() {    // 입력값 검증    if (period_ma_fast >= period_ma_slow || takeProfit < 0.0 || stopLoss < 0.0 || lotSize < 0.01 || minEquity < 10){       Alert("경고 - 입력 데이터가 유효하지 않습니다!");       return (INIT_PARAMETERS_INCORRECT);    }    myPoint = GetPipPoint(Symbol());    mySlippage = GetSlippage(Symbol(), Slippage);    return(INIT_SUCCEEDED); } 4. 가격 변동 시 동작 시장이 움직일 때는 OnTick() 함수가 호출되어 모든 명령어를 실행합니다. 이 함수 내부에서는 다양한 다른 함수가 호출됩니다. 먼저 checkMinEquity() 함수를 호출해 거래 자본의 적절성을 확인합니다. 자본이 충분할 경우 신호 변수를 선언하고 NewCandle() 함수를 호출하여 새로운 캔들이 생성되었음을 알립니다. getSignal() 함수는 두 이동평균 지표의 값을 읽어 상승 또는 하락 교차가 발생했는지를 확인하고, 이를 바탕으로 거래를 위한 신호를 생성합니다. 생성된 신호에 따라 transaction() 함수를 호출해 매수 또는 매도 포지션을 설정합니다. 이후 setTPSL() 함수를 통해 이익 실현 및 손절 가격을 설정합니다.만약 자본이 최소 요구사항을 충족하지 못하면 경고 메시지가 표시되고 EA가 중단됩니다. void OnTick() {    if (cekMinEquity()){              int signal = -1;       bool isNewCandle = NewCandle(Period(), Symbol());              signal = getSignal(isNewCandle);       transaction(isNewCandle, signal);       setTPSL();                  }else{       // 거래 중지, 자본 부족       Print("EA가 자본 부족으로 중지됩니다.");    } } 5. 이익 실현 및 손절 설정 void setTPSL(){    int  tOrder = 0;    string  strMN = "", pair = "";    double sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       strMN = IntegerToString(OrderMagicNumber());       if (StringFind(strMN, IntegerToString(MagicNumber), 0) == 0 && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {           if (takeProfit > 0) {              tp = OrderOpenPrice() + (takeProfit * myPoint);             }else{              tp = OrderOpenPrice();             }           if (stopLoss > 0) {              sl = OrderOpenPrice() - (stopLoss * myPoint);             }else{              sl = OrderStopLoss();             }           if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)){                   Print ("주문 수정 성공");                }             }          }          if (OrderType() == OP_SELL && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {              if (takeProfit > 0) {                tp = OrderOpenPrice() - (takeProfit * myPoint);             }else{                tp = OrderOpenPrice();             }           if (stopLoss > 0) {                sl = OrderOpenPrice() + (stopLoss * myPoint);             }else{                sl = OrderStopLoss();             }           if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if (OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrRed)){                   Print ("주문 수정 성공");                }             }          }       }// 매직 넘버 및 심볼 끝           }// for 끝 } 6. 마무리 오늘 설명한 내용을 바탕으로 여러분의 거래 전략을 더욱 효과적으로 자동화해보세요. 이 EA를 사용하여 더 나은 결과를 얻을 수 있기를 바랍니다! 더 많은 정보를 원하신다면, 저희 텔레그램 그룹에 가입해주세요. t.me/codeMQL 거래를 지원하는 앱을 찾고 계신다면, Play Store에서 SignalForex 앱을 다운로드해보세요! SignalForex 다운로드

2021.03.30
딥러닝 기반의 자동 거래 시스템 - 메타트레이더 4에서의 활용법
MetaTrader4
딥러닝 기반의 자동 거래 시스템 - 메타트레이더 4에서의 활용법

안녕하세요, 트레이더 여러분! 오늘은 제가 개발한 자기 적응형 자동 거래 시스템에 대해 이야기해보려고 해요. 처음에는 이 EA를 시장에 판매해볼까 했습니다. 이 시스템을 개발하게 된 계기는 제가 정적인 패턴으로 거래하는 EA, 즉 ‘언리얼 엔진’을 만들었기 때문입니다. 자세한 내용은 여기에서 확인하실 수 있어요. 하지만 이 딥러닝 기반의 EA를 테스트하다 보니 제 컴퓨터 자원 때문에 한계가 있더라고요. 현재 저는 듀얼 코어 PC에 4GB 메모리만 가지고 있어서요. 이 EA를 몇 년 동안 테스트하려면 슈퍼컴퓨터가 필요하거나, 아니면 시간이 엄청 많이 걸릴 거예요. 제 EA의 브랜드명은 ‘마법사’입니다. 이 EA는 시장에서 발생하는 모든 패턴을 수집하고, 가상 주문을 열어 손절매와 이익 실현을 설정해요. EA는 실제 거래를 열기 위해 가장 적합한 시장 패턴을 탐지합니다. 참고: 이 딥러닝 EA는 실제 거래를 시작하기 위해 최소 3개월에서 5개월 정도 실행해야 해요. 실제 계좌에서 사용하기 전에 전략 테스터에서 충분히 테스트해보시길 권장드립니다. 이 EA를 테스트해보신 분들은 여기에 결과를 공유해주시면 좋겠어요! 테스트는 5자리 쌍 또는 최소 시간 프레임(H1)에서 진행하는 것을 추천드립니다. 행운을 빕니다!

2021.03.13
가장 간단한 DeMarker 지표 기반의 EA 만들기 - MetaTrader 4에서의 활용
MetaTrader4
가장 간단한 DeMarker 지표 기반의 EA 만들기 - MetaTrader 4에서의 활용

안녕하세요, 트레이더 여러분! 오늘은 제가 사용해본 가장 간단한 EA에 대해 소개해드리려고 해요. 이 EA는 DeMarker 지표를 기반으로 작동하며, 초보자 분들이 쉽게 사용할 수 있도록 설계되었습니다. 사용해보시고 후기도 남겨주세요! 이 EA는 단일 통화 쌍에서 작동하며, 시간대, 로트 크기, 손절매 및 이익 실현 등을 메뉴 속성에서 설정할 수 있습니다. extern ENUM_TIMEFRAMES TF  = PERIOD_CURRENT;// 시간대 선택 extern int period          = 8;// DeMarker 기간 extern double lt           = 0.01;// 로트 수 extern int sl              = 100;// 손절매 extern int tp              = 100;// 이익 실현 extern double OB           = 0.7;// 과매도 extern double OS           = 0.3;// 과매수 extern bool OPENBAR        = false;// 새로운 바의 오픈 가격에서 거래하기 여기서 비밀이 있어요! 변수를 세 부분으로 나누었어요:1. 데이터 | 시간대2. 주문3. 통화 쌍 //+------------------------------------------------------------------+ //-- 시간대 | 지표 double dmrk[5]; int signal  =-1;//-- 0: 매수, 1: 매도 int hold = 0; //-- 주문 int ticket  =0; double lot  =0.0; int typ     =-1; //-- 통화 쌍 datetime t1=0; bool newbar=false; bool entry =false; //+------------------------------------------------------------------+ OnInit() 함수에서는 DeMarker 배열 변수를 초기화하고, 특정 브로커의 요구사항에 따른 최소 로트 크기를 확인해야 합니다. //+------------------------------------------------------------------+ //|                                                                   | //+------------------------------------------------------------------+ void OnInit()   {    ArrayInitialize(dmrk,0.0);   //---       const double test_lot   = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);       if(lt<test_lot)   lt    = test_lot;   } OnTick() 함수에서는 지표를 계산하고 매수 및 매도 신호를 결정합니다. //---------------------------------------------------------------------------    signal = -1; //--------------------------------------------------------------------------- //---계산    for(int i=0; i<ArraySize(dmrk); i++)      {       dmrk[i]  =  iDeMarker(Symbol(),TF,period,i);      } //---    if(dmrk[1] > OB)      {       hold = 1;//설정      }    else       if(dmrk[1] < OS)         {          hold = -1;//설정         }       else         {          hold = 0;//리셋         }    if(hold ==  1)      {       if(dmrk[0]<OB && dmrk[1]>OB)         {          signal = OP_SELL;         }      }    if(hold == -1)      {       if(dmrk[0]>OS && dmrk[1]<OS)         {          signal = OP_BUY;         }      } 매수 및 매도 신호를 열기 위한 코드입니다... //---------------------------------------------------------------------------    if(signal != -1)       if(newbar==true)          if(entry==false)//문 열기            {             //---             entry =true;//설정             //---             if(signal == OP_BUY)               {               ticket = OrderSend(Symbol(),OP_BUY,lt,Ask,(int)((Ask-Bid)/Point),                                   sl>0?Bid-sl*Point:0.0,                                   tp>0?Bid+tp*Point:0.0,                                   EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold),                                   EANumber,                                   0,                                   clrBlue);                signal=-1;                //hold =0;               }//리셋               }//리셋 신호            } 그리고 매도를 위한 코드는 다음과 같습니다. //---------------------------------------------------------------------------    if(signal == OP_SELL)          {               ticket = OrderSend(Symbol(),OP_SELL,lt,Bid,(int)((Ask-Bid)/Point),                                      sl>0?Ask+sl*Point:0.0,                                      tp>0?Ask-tp*Point:0.0,                                      EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold),                                   EANumber,                                   0,                                   clrRed);               signal=-1;                  }//리셋 신호            } 마지막으로, 주문을 종료하는 코드입니다.    if(entry == true) // 종료      {       if(OrderSelect(ticket,SELECT_BY_TICKET))         {          if(OrderCloseTime() == 0)//-- 활성 거래 주문            {             /*  종료 조건  */             //entry = false;            }          //else             if(OrderCloseTime() != 0)//--  수동 종료 2. sl/tp 3. ea               {                entry = false;//entry 리셋               }         }      } 이 EA를 활용하여 여러분의 거래에서 좋은 성과를 내시길 바랍니다! 궁금한 점이나 피드백은 언제든지 댓글로 남겨주세요.

2020.12.17
MetaTrader 4를 위한 CSV 파일 생성기 예제
MetaTrader4
MetaTrader 4를 위한 CSV 파일 생성기 예제

안녕하세요, 여러분! 저는 루카스입니다. 제가 이 훌륭한 커뮤니티에 기여하고 싶어서 이렇게 글을 남깁니다. 저는 외환 및 주식 시장 투자자이며, 개인 거래를 위해 전문가를 코딩하고 있습니다. 여러분께 도움이 되길 바라며 이 예제를 공유합니다. 이번 글에서는 주문 데이터를 CSV 파일로 작성하는 방법을 보여드릴게요. 이 파일은 나중에 분석에 활용할 수 있습니다. 현재 상태의 이 전문가(EA)는 거래를 위한 것이 아니므로, 여러분의 전략에 맞게 수정하고 발전시키는 데에 사용하시길 바랍니다. 이 전문가는 선택한 방향으로 거래를 열고, 메뉴 설정에서 입력한 TP/SL에 따라 주문이 가상으로 종료됩니다. 'WriteCloseData'를 true로 설정하면, 방향, 수익/손실, 가격 등의 주문 데이터가 포함된 CSV 파일이 여러분의 터미널에 생성됩니다. 전략 테스터에서 이 전문가를 테스트하면, 이 파일은 OpenDataFolder/tester/CSVexpert/CSVexample 경로에서 확인할 수 있습니다. CSVexpert 디렉토리는 테스트를 시작할 때 자동으로 생성되며, 모든 데이터가 저장된 CSVexample 파일도 함께 생성됩니다. 이 기능을 여러분의 전문가(EA)에 구현하거나 추가로 발전시켜서 데모/실계좌에서 실행할 때는 MQL4/Files/CSVexpert/CSVexample 경로에서 이 파일을 찾을 수 있습니다. 디렉토리와 파일 이름은 원하는 대로 변경할 수 있지만, .csv는 그대로 두셔야 합니다. 다시 한 번 강조하지만, 이 예제는 여러분이 할 수 있는 것과 이 기능을 사용하는 방법에 대한 것이니, 현재 거래 용도로 사용하지 않기를 바랍니다!

2020.11.14
처음 이전 10 11 12 13 14 15 16 17 18 19 20 다음 마지막