기고글 토론 "MQL5 Cookbook - MQL5의 다중 통화 Expert Advisor 및 대기 중인 주문 작업" - 페이지 3

 

오토...이제 사용할 수 있습니다 :-)

저를 위해 거래를 합니다.

 

대단한 반응입니다. 감사합니다!

글 작성자가 직접 관리해야 한다는 점을 지적하고 싶었습니다.

여러분이 해야 할 일은

CheckTradingPermission()
그리고 모든 MQL5xxx 쓰레기를 제거하면 작동합니다;)
 
Otto Pauser:

대단한 반응입니다. 감사합니다!

글 작성자가 직접 관리해야 한다는 점을 지적하고 싶었습니다.

음... 네, 알아요.

그리고 나는 그것에 약간의 표현을주었습니다.

아무도 그것에 대해 아무 말도하지 않더라도 다른 곳에서 알아 차릴 수 있습니다 :-)

 
Christian:

음... 네, 저희도 압니다.

그리고 나는 그것을 표현했습니다.

아무도 말하지 않아도 다른 곳에서 알아챌 수 있습니다 :-)

제 의도는 마켓오더를 펜디그오더로 재프로그래밍하는 것이었습니다.

누구든지 사용할 수 있는 코드는 다음과 같습니다.

이것은 유용한 EA가 아니라 계산 방법의 예일뿐입니다. 나는 그것이 정확하고 테스터에서 작동하기를 바랍니다.

또한 실제 프로그래밍 스타일은 아니지만 매우 간단하게 유지했습니다.

#include <Trade\Trade.mqh> CTrade Trade;

//+------------------------------------------------------------------+
input int    inp_Dist     =  120;   // 거리 보류 주문(포인트)
input int    inp_Stop     =  125;   // SL(포인트)
input int    inp_Take     =  150;   // TP(포인트)
input double inp_Volume   = 0.01;   // 볼륨

//+------------------------------------------------------------------+
double distPend = inp_Dist*_Point;
double distStop = inp_Stop*_Point;
double distTake = inp_Take*_Point;

//+------------------------------------------------------------------+
bool   done     = false;
double ask;
double bid;
double levelSell;
double levelBuy;
double stopSell;
double stopBuy;
double takeSell;
double takeBuy;

void OnTick()
{
   if(done)
      return;
   
   ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   levelBuy =NormalizeDouble(bid-distPend,_Digits);
   levelSell=NormalizeDouble(ask+distPend,_Digits);

   stopBuy  =NormalizeDouble(levelBuy -distStop,_Digits);
   stopSell =NormalizeDouble(levelSell+distStop,_Digits);

   takeBuy  =NormalizeDouble(levelBuy +distTake,_Digits);
   takeSell =NormalizeDouble(levelSell-distTake,_Digits);

   SellLimit();
   BuyLimit();

   done=true;
}

bool BuyLimit()
{
   //return(Trade.BuyLimit (inp_Volume,levelBuy ));
   return(Trade.BuyLimit (inp_Volume,levelBuy ,_Symbol,stopBuy,takeBuy ));
}

bool SellLimit()
{
   //return(Trade.SellLimit(inp_Volume,levelSell));
   return(Trade.SellLimit(inp_Volume,levelSell,_Symbol,stopSell,takeSell));
}