코딩하는 방법? - 페이지 110 1...103104105106107108109110111112113114115116117...347 새 코멘트 CodeMuncher 2008.07.23 19:05 #1091 안녕. 나는 당신의 트릭을 배우고 당신에게 내 트릭을 보여주기를 고대하고 있습니다. [삭제] 2008.07.24 00:29 #1092 CodeMuncher: 안녕. 나는 당신의 트릭을 배우고 당신에게 내 트릭을 보여주기를 고대하고 있습니다. 이 포럼에서 많은 훌륭한 자료를 찾을 수 있습니다. 검색 기능을 제한 없이 읽고 사용하세요!!! 무엇이든 자유롭게 물어보세요... 많은 훌륭한 기여자/조력자가 여기에 있습니다. FerruFx RonaldRaygun 2008.07.24 09:01 #1093 fireslayer26: 이 코드에서는 45핍에 대해 후행 정지가 설정되어 있습니다. 그러나 후행 정지는 45핍을 이동할 때까지 활성화되지 않는 것 같습니다. 거래가 이루어질 때 후행 정지가 활성화되도록 변경하려면 어떻게 해야 합니까? extern string Remark1 = "== Main Settings =="; extern int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = true; extern double Lots = 4; extern int Slippage = 2; extern bool UseStopLoss = false; extern int StopLoss = 100; extern bool UseTakeProfit = false; extern int TakeProfit = 15; extern bool UseTrailingStop = true; extern int TrailingStop = 45; extern bool MoveStopOnce = False; extern int MoveStopWhenPrice = 50; extern int MoveStopTo = 1; extern int MaxConcurrentTrades = 2; //Version 2.01 int BarCount; int Current; bool TickCheck = False; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { BarCount = Bars; if (EachTickMode) Current = 0; else Current = 1; return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int Order = SIGNAL_NONE; int Total, Ticket; double StopLossLevel, TakeProfitLevel; if (EachTickMode && Bars != BarCount) TickCheck = False; Total = OrdersTotal(); Order = SIGNAL_NONE; //+------------------------------------------------------------------+ //| Variable Begin | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Variable End | //+------------------------------------------------------------------+ //Check position bool IsTrade = False; for (int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { IsTrade = True; if(OrderType() == OP_BUY) { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) { if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderStopLoss() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) { if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } 빨간색 으로 변경됨 [삭제] 2008.07.24 13:12 #1094 빨간색으로 변경했지만 이제 EA가 작동하지 않는 것 같습니다. 여러분이 볼 수 있도록 전체 EA를 게시하겠습니다. 감사해요! 파일: williams_ea.mq4 12 kb RonaldRaygun 2008.07.24 13:15 #1095 orderstoploss 뒤에 ()를 넣어야 합니다. [삭제] 2008.07.24 13:28 #1096 쿨, 해냈어! 이 지표는 어떻습니까.... 여는 방법에 따라 가격이 다른 색상으로 표시되도록 수정할 수 있습니까? 이전 막대보다 높게 열리면 가격이 녹색이 되고, 낮으면 빨간색이 되며, 그마저도 노란색이 됩니다. 이 색상을 선택할 수 있습니까? 또한 6개 대신 10개의 구멍을 표시하도록 확장할 수 있습니까? 또한 EA에서 방금 수정한 "후행 정지를 활성화하기 위한 핍"과 같은 입력 설정을 어떻게 입력합니까? 나는 이것을 다른 EA에 가지고 있지만 그것을 코딩하는 방법을 확신하지 못합니다. 파일: period_open.mq4 23 kb RonaldRaygun 2008.07.25 12:47 #1097 주문 설명() 주문 티켓() 주문량() 오더스톱로스() 오더테이크프로핏() 주문오픈타임() 이것들은 모두 잠재적인 주문 필터링 도구입니다. 이러한 특정 거래의 또 다른 점은 무엇입니까? hiachiever 2008.07.25 18:51 #1098 Ronald Raygun: 주문 설명() 주문 티켓() 주문량() 오더스톱로스() 오더테이크프로핏() 주문오픈타임() 이것들은 모두 잠재적인 주문 필터링 도구입니다. 이러한 특정 거래의 또 다른 점은 무엇입니까? 주문 필터링에 가장 중요한 두 가지는 OrderSymbol() 및 OrderMagicNumber()입니다. 또 다른 참고 사항은 OrderComment()입니다. 가장 좋은 방법은 이 중 하나를 메타에디터에 입력하고 asnd라는 단어를 클릭한 다음 F1을 누르는 것입니다. 그렇게 하면 도움말이 표시되고 모든 주문 기능 이 나열됩니다. 즐거운 프로그래밍, 성공자 MrPip 2008.07.25 19:43 #1099 주문 주석 사용 OrderComment()를 사용하여 거래를 식별할 때 주의하십시오. 때로는 브로커가 댓글에 문자를 추가합니다. 사용하는 것이 가장 좋습니다 if (StringFind(OrderComment(), UserComment, 0) > 0) { // OrderComment에서 찾은 UserComment로 식별된 주문 } 대신에 if (OrderComment() == UserComment) { // 주문은 UserComment로 식별될 수 있습니다. // 브로커가 OrderComment를 변경하지 않은 경우 } 로버트 MiniMe 2008.07.25 22:31 #1100 비이븐에서 거래 마감 .............. 1...103104105106107108109110111112113114115116117...347 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕.
나는 당신의 트릭을 배우고 당신에게 내 트릭을 보여주기를 고대하고 있습니다.
안녕. 나는 당신의 트릭을 배우고 당신에게 내 트릭을 보여주기를 고대하고 있습니다.
이 포럼에서 많은 훌륭한 자료를 찾을 수 있습니다.
검색 기능을 제한 없이 읽고 사용하세요!!!
무엇이든 자유롭게 물어보세요... 많은 훌륭한 기여자/조력자가 여기에 있습니다.
FerruFx
이 코드에서는 45핍에 대해 후행 정지가 설정되어 있습니다. 그러나 후행 정지는 45핍을 이동할 때까지 활성화되지 않는 것 같습니다. 거래가 이루어질 때 후행 정지가 활성화되도록 변경하려면 어떻게 해야 합니까?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderStopLoss() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
빨간색 으로 변경됨
빨간색으로 변경했지만 이제 EA가 작동하지 않는 것 같습니다. 여러분이 볼 수 있도록 전체 EA를 게시하겠습니다. 감사해요!
orderstoploss 뒤에 ()를 넣어야 합니다.
쿨, 해냈어!
이 지표는 어떻습니까....
여는 방법에 따라 가격이 다른 색상으로 표시되도록 수정할 수 있습니까? 이전 막대보다 높게 열리면 가격이 녹색이 되고, 낮으면 빨간색이 되며, 그마저도 노란색이 됩니다. 이 색상을 선택할 수 있습니까? 또한 6개 대신 10개의 구멍을 표시하도록 확장할 수 있습니까?
또한 EA에서 방금 수정한 "후행 정지를 활성화하기 위한 핍"과 같은 입력 설정을 어떻게 입력합니까? 나는 이것을 다른 EA에 가지고 있지만 그것을 코딩하는 방법을 확신하지 못합니다.
주문 설명()
주문 티켓()
주문량()
오더스톱로스()
오더테이크프로핏()
주문오픈타임()
이것들은 모두 잠재적인 주문 필터링 도구입니다.
이러한 특정 거래의 또 다른 점은 무엇입니까?
주문 설명()
주문 티켓()
주문량()
오더스톱로스()
오더테이크프로핏()
주문오픈타임()
이것들은 모두 잠재적인 주문 필터링 도구입니다.
이러한 특정 거래의 또 다른 점은 무엇입니까?주문 필터링에 가장 중요한 두 가지는 OrderSymbol() 및 OrderMagicNumber()입니다. 또 다른 참고 사항은 OrderComment()입니다.
가장 좋은 방법은 이 중 하나를 메타에디터에 입력하고 asnd라는 단어를 클릭한 다음 F1을 누르는 것입니다. 그렇게 하면 도움말이 표시되고 모든 주문 기능 이 나열됩니다.
즐거운 프로그래밍,
성공자
주문 주석 사용
OrderComment()를 사용하여 거래를 식별할 때 주의하십시오. 때로는 브로커가 댓글에 문자를 추가합니다.
사용하는 것이 가장 좋습니다
if (StringFind(OrderComment(), UserComment, 0) > 0)
{
// OrderComment에서 찾은 UserComment로 식별된 주문
}
대신에
if (OrderComment() == UserComment)
{
// 주문은 UserComment로 식별될 수 있습니다.
// 브로커가 OrderComment를 변경하지 않은 경우
}
로버트
비이븐에서 거래 마감
..............