매우 간단한 EA를 만드는 데 도움이 필요합니다. - 페이지 7 1234567 새 코멘트 [삭제] 2010.04.15 14:25 #61 doshur : //+------------------------------------------------------------------+ //| Stepper.mq4 | //| doshur | //| www.doshur.com | //+------------------------------------------------------------------+ #property copyright "doshur" #property link "www.doshur.com" extern int TakeProfit = 5; extern int Range = 20; extern int Risk = 2; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } int deinit() { return(0); } int start() { //---- static bool ToTrade = false; static bool FirstTrade = true; double PrevLow = iLow(Symbol(), 0, 1); double PrevHigh = iHigh(Symbol(), 0, 1); double PrevRange = (PrevHigh - PrevLow) / Point; if(NewBar()) { if(FirstTrade == false) { if(PrevRange >= Range) ToTrade = true; else ToTrade = false; } else { FirstTrade = false; } } if(ToTrade) { if(COT(1) < 1) { if(Ask > PrevHigh) OrderSend(Symbol(), OP_BUY, MM(PrevRange, Risk), Ask, 3, PrevLow, Ask + TakeProfit * Point, "Stepper - BUY", 57390, 0, Blue); } if(COT(2) < 1) { if(Bid < PrevLow) OrderSend(Symbol(), OP_SELL, MM(PrevRange, Risk), Bid, 3, PrevHigh, Bid - TakeProfit * Point, "Stepper - SELL", 57391, 0, Red); } } //---- return(0); } //+------------------------------------------------------------------+ //---- Check Is New Bar bool NewBar() { static datetime PrevBar; if(PrevBar < Time[0]) { PrevBar = Time[0]; return(true); } else { return(false); } return(false); } //---- Check Open Trades int COT(int BS) { int Buys = 0, Sells = 0; for(int cnt_COT = 0; cnt_COT < OrdersTotal(); cnt_COT++) { OrderSelect(cnt_COT, SELECT_BY_POS, MODE_TRADES); if(OrderType() == OP_BUY && OrderSymbol() == Symbol()) Buys++; if(OrderType() == OP_SELL && OrderSymbol() == Symbol()) Sells++; } if(BS == 1) return(Buys); if(BS == 2) return(Sells); } //---- Money Management double MM(int SL, int RK) { double rLots = NormalizeDouble(AccountBalance() / 1000 * RK / SL, 1); // Risk ?% of balance if(rLots < 0.1) rLots = 0.1; return(rLots); } 문제 및 기타 문제를 극복하기 위해 첫 번째 실행을 구현했습니다. 코드를 테스트하지 않았다 Pls는 다른 수정안을 테스트하고 나열합니다. 도와주세요, 저는 시도했지만 이 EA가 작동하도록 할 수 없었습니다. 어쩌면 내가 잘못된 mt4 플랫폼을 사용하거나 ??? 즉, 나는 fx-open을 사용한다 및/또는 시도할 수 있는 최신 버전이 있습니까? 1234567 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
//+------------------------------------------------------------------+
//| Stepper.mq4 |
//| doshur |
//| www.doshur.com |
//+------------------------------------------------------------------+
#property copyright "doshur"
#property link "www.doshur.com"
extern int TakeProfit = 5;
extern int Range = 20;
extern int Risk = 2;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
//----
static bool ToTrade = false;
static bool FirstTrade = true;
double PrevLow = iLow(Symbol(), 0, 1);
double PrevHigh = iHigh(Symbol(), 0, 1);
double PrevRange = (PrevHigh - PrevLow) / Point;
if(NewBar())
{
if(FirstTrade == false)
{
if(PrevRange >= Range)
ToTrade = true;
else
ToTrade = false;
}
else
{
FirstTrade = false;
}
}
if(ToTrade)
{
if(COT(1) < 1)
{
if(Ask > PrevHigh)
OrderSend(Symbol(), OP_BUY, MM(PrevRange, Risk), Ask, 3, PrevLow, Ask + TakeProfit * Point, "Stepper - BUY", 57390, 0, Blue);
}
if(COT(2) < 1)
{
if(Bid < PrevLow)
OrderSend(Symbol(), OP_SELL, MM(PrevRange, Risk), Bid, 3, PrevHigh, Bid - TakeProfit * Point, "Stepper - SELL", 57391, 0, Red);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//---- Check Is New Bar
bool NewBar()
{
static datetime PrevBar;
if(PrevBar < Time[0])
{
PrevBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}
//---- Check Open Trades
int COT(int BS)
{
int Buys = 0, Sells = 0;
for(int cnt_COT = 0; cnt_COT < OrdersTotal(); cnt_COT++)
{
OrderSelect(cnt_COT, SELECT_BY_POS, MODE_TRADES);
if(OrderType() == OP_BUY && OrderSymbol() == Symbol()) Buys++;
if(OrderType() == OP_SELL && OrderSymbol() == Symbol()) Sells++;
}
if(BS == 1) return(Buys);
if(BS == 2) return(Sells);
}
//---- Money Management
double MM(int SL, int RK)
{
double rLots = NormalizeDouble(AccountBalance() / 1000 * RK / SL, 1); // Risk ?% of balance
if(rLots < 0.1) rLots = 0.1;
return(rLots);
}
문제 및 기타 문제를 극복하기 위해 첫 번째 실행을 구현했습니다.
코드를 테스트하지 않았다
Pls는 다른 수정안을 테스트하고 나열합니다.
도와주세요, 저는 시도했지만 이 EA가 작동하도록 할 수 없었습니다.
어쩌면 내가 잘못된 mt4 플랫폼을 사용하거나 ???즉, 나는 fx-open을 사용한다
및/또는 시도할 수 있는 최신 버전이 있습니까?