기본적인 질문 ... - 페이지 6

 
 

기동특무부대 RWI 방아쇠??

이 지표에 대해 모든 녹색에 대해 구매 트리거를 프로그래밍하고 모든 빨간색에 대해 판매 트리거를 프로그래밍하려면 어떻게 해야 합니까? 도와주세요...

새긴 금,

파일:
 

틱당 한 번만 EA

얘들 아,

이것이 이전에 게시되었는지는 모르겠지만(나는 스레드를 통해 검색할 인내심이 부족합니다. 죄송합니다!) 하지만 많은 요청을 받았다는 것을 압니다.

이 코드는 틱당 한 번만 실행됩니다. 새로운 틱이 도입되는 즉시 실행되며, 그 이후에 다른 틱이 발생할 때까지 작동 하지 않습니다.

때때로 실제로 문제가 될 수 있음을 명심하십시오. 어떤 이유로든 주문이 처리되지 않으면 다시 시작되지 않습니다. 그렇게 하도록 코드를 수정하려면 계속 진행하십시오. 나는 다음과 같은 것을 제안할 것이다:

if order fails, fileseek to front of f, write Open[2] to f

이렇게 하면 다음 틱이 새 틱이라고 믿게 됩니다.

파일:
newtick.mq4  3 kb
 

MQL4 작성에 대한 책, 온라인 자습서 또는 비디오가 있습니까?

 

모두들 안녕,

이것을 코딩하는 데 도움이 필요합니다.

일일 차트 기준:

a) 1일째가 마감일 때 조건이 충족되고 6월 9일이 6월 9일이라고 가정해 봅시다.

b) 이제 2일째 또는 6월 10일 마감 시 고가 및 저가에 매수 정지 및 매도 정지를 설정하고 싶습니다.

c) 마지막으로 3일째에 거래가 시작되기를 원합니다.

또한 LONG이 먼저 트리거되면 매도 정지가 닫히고 그 반대의 경우도 마찬가지입니다.

도움을 주셔서 미리 감사드립니다.

문안 인사,

외환

 

요일 및 시간 지정을 위한 EA

요일을 선택하고(예: 수요일과 목요일만 ) 개장 시간과 폐장 시간을 지정하는 EA를 모르십니까?

많은 경우에,

많은 사람들이 SWAP을 받기 때문에 수요일과 목요일에 요금이 인상됩니다.

이 시기에 사 입장을 취합니다.

그리고 SWAP가 발생하는 즉시 비율이 떨어집니다.

이 시기에 매도 포지션을 취하고 있습니다.

이런 거래에 사용할 EA를 찾고 있습니다.

 

도움이 필요해!

안녕하세요 여러분,

도움이 필요해 내가 만든 이 EA가 있습니다.

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESELL 4

#property copyright "FxAttack"

#property link "http://www.ioinvesto.com"

extern int MagicNumber = 0;

extern bool SignalMail = False;

extern bool EachTickMode = True;

extern double Lots = 0.1;

extern int Slippage = 3;

extern bool UseStopLoss = True;

extern int StopLoss = 25;

extern bool UseTakeProfit = True;

extern int TakeProfit = 25;

extern bool UseTrailingStop = False;

extern int TrailingStop = 30;

extern bool Use.Time.Filter = true;

extern string Server.Time.To.Start = "00:00";

extern string Server.Time.To.Stop = "17:00";

extern bool Not.Trade.Fri.Sun = True;

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 |

//+------------------------------------------------------------------+

double OpenPrice = iOpen(NULL, PERIOD_D1, Current + 0);

double Buy_Sign = (OpenPrice + (30*Point));

double Sell_Sign = (OpenPrice - (30*Point));

double start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start);

double end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);

Comment("Open Price = ",OpenPrice);

//+------------------------------------------------------------------+

//| Variable End |

//+------------------------------------------------------------------+

if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);

if(Not.Trade.Fri.Sun && (DayOfWeek()==6 || DayOfWeek()==1 )) return(0);

//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()) {

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;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > 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;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

if (Bid > Buy_Sign) Order = SIGNAL_BUY;

if (Ask < Sell_Sign) Order = SIGNAL_SELL;

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (1000 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (1000 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Sell Order", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+[/PHP]

......but I don't understand how to put the code below inner it.

[PHP]...

for (int i=0; i<OrdersTotal(); i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol()==Symbol() )

return(0);

....

내가 작성한 코드의 마지막 블록은 "한 SYMBOL에 대한 하나의 주문이 이미 열린 경우 해당 SYMBOL에 대한 새 주문을 열지 마십시오"입니다.

누군가 나를 통합하는 데 도움을 줄 수 있습니까?

감사해요,

마우로

 

EA는 한 번만 거래합니다...

여러분, 급하게 질문할 것이 있습니다. 최근에 EA를 만들었습니다. 매개변수 가 정확하고 차트에 추가했을 때 적절한 매수를 배치한 다음 나중에 매도했습니다. 그러나 다음에 매수 신호가 왔을 때 결코 거래를 하지 않았습니다. EA는 첫 번째 거래만 하고 그 다음에는 거래를 하지 않는 것 같습니다. 왜 그럴 수 있는지 아세요? 도움을 주시면 감사하겠습니다. 감사해요!!!

 

아마도 ea를 보여주는 아이디어일까요? 그럼 코드를 볼까요?

사유: