코딩하는 방법? - 페이지 109 1...102103104105106107108109110111112113114115116...347 새 코멘트 RonaldRaygun 2008.07.07 14:16 #1081 여러 거래 관리 모두 안녕, 이론적으로 무한한 양의 거래를 입력하고 각 거래를 관리할 수 있는 EA를 개발하려고 합니다. 후행 정지 BE로 이동 ATR-후행 정지 등 나는 스위스군과 manageTP와 같은 EA가 이것을 할 수 있다는 것을 알고 있습니다. 방법을 모르겠습니다. 어떤 제안? rarango 2008.07.16 09:44 #1082 손실 후 거래를 중지하는 코드를 작성하는 데 도움이 필요합니다 안녕, 한 번의 손실 또는 두세 번의 연속 손실 후에 전문가가 특정 시간 동안 거래를 중단하도록 코드를 작성해야 합니다. 어떤 몸이 나를 도울 수 있습니까? jawas_ftsm 2008.07.21 02:00 #1083 헷징이 닫힌 Martinggle에 대한 코딩 안녕하세요 팀, 아래 내 상태의 솔루션을 제공할 수 있는 코드를 찾고 싶습니다. 예; 마팅글 컨셉- TP = 23핍 핍 간격 = 20 OP 구매 EU 0.1,0.2,0.4,0.8,1.6 로트 1. 로트 1,6의 레이어가 -20핍보다 많이 떠 있는 경우 12.8로트(tp 23)로 EU를 OP 매도합니다. 2. 레이어 12.8 로트가 TP에 도달하면 모든 EU 포지션을 닫습니다. 3. 12.8 lot pip=0이면 Sell EU에서만 포지션을 닫습니다. 4. 조건이 적용되면 상황 1~3을 다시 반복합니다. 기능 과 코드에 대한 조언을 부탁드립니다. How to code? 손익분기점 코딩 도움말 [삭제] 2008.07.22 19:05 #1084 코딩 질문 현재 이 코드는 현재 오프닝이 이전 막대보다 높은지 확인 하는 방식으로 작동합니다. 내 질문은 이전 막대보다 높거나 같은지 확인하려면 어떻게 변경합니까? if(열기[0] > 열기[0+1] && 열기[0+1] > 열기[0+2] && 열기[0+2]> 열기[0+3] && 열기[0+3] > 열기[0+4] && 열기[0+4] > 열기[0+5] && 열기[0+5] > 열기[0+6]) 주문 = SIGNAL_SELL = >와 같이 보다 큼 기호 옆에 =를 추가할까요? 감사해요! oneg 2008.07.22 19:25 #1085 이 시도: if(Open[0] => Open[0+1] && Open[0+1] => Open[0+2] && Open[0+2]=> Open[0+3] && Open[0+3] => Open[0+4] && Open[0+4] => Open[0+5] && Open[0+5] => Open[0+6]) Order = SIGNAL_SELL cooltrader28yahoocom 2008.07.22 19:31 #1086 역 전문가 조언자 신호 안녕 이 전문 고문과 놀아요 #property copyright "FORTRADER.RU" #property link "http://FORTRADER.RU" /* ????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008, ??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru http://www.fortrader.ru/arhiv.php A detailed description of the parameters adviser available issue of the journal dated May 26 2008, suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru http://www.fortrader.ru/arhiv.php */ extern string x="????????? MACD:"; extern int FastEMA = 12; extern int SlowEMA = 24; int SignalEMA = 9; extern int predel = 6; extern string x1="????????? MA:"; extern int SMA1 = 50; extern int SMA2 = 100; extern int otstup = 10; extern string x2="???????? ????? ??? ??????? ????-???? :"; extern int stoplossbars = 6; extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:"; extern int pprofitum = 2; extern string x4="?????? ?? ADX:"; extern int enable = 0; extern int periodADX = 14; extern double Lots=1; datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell; int start() { buy=0;sell=0; for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_BUY){buy=1;} if(OrderType()==OP_SELL){sell=1;} } //????????? ?????????? double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1); double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1); double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1); if(Close[1]<sma2){okbuy=1;} if(Close[1]>sma2){oksell=1;} if(enable==1) { adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0); }else{adx=60;} if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0) { buy=0; for( i=predel;i>0;i--) { macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i); if(macd<0){buy=2;} } if(buy==2 && adx>50 && okbuy==1) {okbuy=0; double stoploss=Low; OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green); a=0; } } if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0) { sell=0; for( i=predel;i>0;i--) { macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i); if(macd>0){sell=2;} } if(sell==2 && adx>50 && oksell==1) {oksell=0; stoploss=High; OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White); b=0; } } if(buy==2 || buy==1) { for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_BUY ) { double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum); if(Close[1]>setup2 && a==0) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White); OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet); a=1; } if(a==1 && sma1> Close[1]-otstup*Point) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); } } } } if(sell==2 || sell==1) { for( i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()==OP_SELL ) { setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum); if(Close[1]<setup2 && b==0) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White); OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet); b=1; } if(b==1 && Close[1]-otstup*Point> sma1) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); } } } } return(0); } 구매 및 판매 주문 을 어떻게 취소합니까 ... 작동하지 않습니다 How to code? [ARCHIVE] Any rookie question, Ojala EA Linuxser 2008.07.22 19:52 #1087 OP_SELL을 사용하여 OP_BUY를 반대로 변경하고 올바른 코드 라인에서 역동작을 수행합니다. [삭제] 2008.07.22 21:40 #1088 oneg: 이 시도: if(Open[0] => Open[0+1] && Open[0+1] => Open[0+2] && Open[0+2]=> Open[0+3] && Open[0+3] => Open[0+4] && Open[0+4] => Open[0+5] && Open[0+5] => Open[0+6]) Order = SIGNAL_SELL 그것은 작동하지 않았지만 > 기호 뒤에 = 기호를 넣으면 효과가 있었습니다. 이와 같이: if(열기[0] >= 열기[0+1] && 열기[0+1] >= 열기[0+2] && 열기[0+2]>= 열기[0+3] && 열기[0+3] >= 열기[0+4] && 열기[0+4] >= 열기[0+5] && 열기[0+5] >= 열기[0+6]) 주문 = SIGNAL_SELL [삭제] 2008.07.23 10:32 #1089 이 코드에서는 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 - 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; } //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((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; } } } } } } How to code? Combining 4 indicators to Result of the previous cooltrader28yahoocom 2008.07.23 15:58 #1090 역 전문가 조언자 신호 누구든지 1 Expert Advisor에서 일부 코드를 변경하기 위해 Skype에서 나를 도울 수 있습니까? 나는 아주 좋은 것을 찾을 수 있습니다. 약간만 변경되어야 합니다. 내 스카이프: ctzulu 정말 감사합니다 1...102103104105106107108109110111112113114115116...347 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
여러 거래 관리
모두 안녕,
이론적으로 무한한 양의 거래를 입력하고 각 거래를 관리할 수 있는 EA를 개발하려고 합니다.
나는 스위스군과 manageTP와 같은 EA가 이것을 할 수 있다는 것을 알고 있습니다. 방법을 모르겠습니다.
어떤 제안?
손실 후 거래를 중지하는 코드를 작성하는 데 도움이 필요합니다
안녕,
한 번의 손실 또는 두세 번의 연속 손실 후에 전문가가 특정 시간 동안 거래를 중단하도록 코드를 작성해야 합니다.
어떤 몸이 나를 도울 수 있습니까?
헷징이 닫힌 Martinggle에 대한 코딩
안녕하세요 팀,
아래 내 상태의 솔루션을 제공할 수 있는 코드를 찾고 싶습니다.
예;
마팅글 컨셉-
TP = 23핍
핍 간격 = 20
OP 구매 EU 0.1,0.2,0.4,0.8,1.6 로트
1. 로트 1,6의 레이어가 -20핍보다 많이 떠 있는 경우 12.8로트(tp 23)로 EU를 OP 매도합니다.
2. 레이어 12.8 로트가 TP에 도달하면 모든 EU 포지션을 닫습니다.
3. 12.8 lot pip=0이면 Sell EU에서만 포지션을 닫습니다.
4. 조건이 적용되면 상황 1~3을 다시 반복합니다.
기능 과 코드에 대한 조언을 부탁드립니다.
코딩 질문
현재 이 코드는 현재 오프닝이 이전 막대보다 높은지 확인 하는 방식으로 작동합니다. 내 질문은 이전 막대보다 높거나 같은지 확인하려면 어떻게 변경합니까?
if(열기[0] > 열기[0+1] &&
열기[0+1] > 열기[0+2] &&
열기[0+2]> 열기[0+3] &&
열기[0+3] > 열기[0+4] &&
열기[0+4] > 열기[0+5] &&
열기[0+5] > 열기[0+6]) 주문 = SIGNAL_SELL
= >와 같이 보다 큼 기호 옆에 =를 추가할까요?
감사해요!
이 시도:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
역 전문가 조언자 신호
안녕
이 전문 고문과 놀아요
#property link "http://FORTRADER.RU"
/*
????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008,
??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
A detailed description of the parameters adviser available issue of the journal dated May 26 2008,
suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru
http://www.fortrader.ru/arhiv.php
*/
extern string x="????????? MACD:";
extern int FastEMA = 12;
extern int SlowEMA = 24;
int SignalEMA = 9;
extern int predel = 6;
extern string x1="????????? MA:";
extern int SMA1 = 50;
extern int SMA2 = 100;
extern int otstup = 10;
extern string x2="???????? ????? ??? ??????? ????-???? :";
extern int stoplossbars = 6;
extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:";
extern int pprofitum = 2;
extern string x4="?????? ?? ADX:";
extern int enable = 0;
extern int periodADX = 14;
extern double Lots=1;
datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell;
int start()
{
buy=0;sell=0;
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY){buy=1;}
if(OrderType()==OP_SELL){sell=1;}
}
//????????? ??????????
double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);
double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1);
double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1);
if(Close[1]<sma2){okbuy=1;}
if(Close[1]>sma2){oksell=1;}
if(enable==1)
{
adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);
}else{adx=60;}
if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0)
{
buy=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd<0){buy=2;}
}
if(buy==2 && adx>50 && okbuy==1)
{okbuy=0;
double stoploss=Low;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green);
a=0;
}
}
if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0)
{
sell=0;
for( i=predel;i>0;i--)
{
macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);
if(macd>0){sell=2;}
}
if(sell==2 && adx>50 && oksell==1)
{oksell=0;
stoploss=High;
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White);
b=0;
}
}
if(buy==2 || buy==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY )
{
double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum);
if(Close[1]>setup2 && a==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet);
a=1;
}
if(a==1 && sma1> Close[1]-otstup*Point)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}
}
}
}
if(sell==2 || sell==1)
{
for( i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL )
{
setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum);
if(Close[1]<setup2 && b==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,White);
OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet);
b=1;
}
if(b==1 && Close[1]-otstup*Point> sma1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
}
}
}
return(0);
}구매 및 판매 주문 을 어떻게 취소합니까 ... 작동하지 않습니다
OP_SELL을 사용하여 OP_BUY를 반대로 변경하고 올바른 코드 라인에서 역동작을 수행합니다.
이 시도:
if(Open[0] => Open[0+1] &&
Open[0+1] => Open[0+2] &&
Open[0+2]=> Open[0+3] &&
Open[0+3] => Open[0+4] &&
Open[0+4] => Open[0+5] &&
Open[0+5] => Open[0+6]) Order = SIGNAL_SELL
그것은 작동하지 않았지만 > 기호 뒤에 = 기호를 넣으면 효과가 있었습니다. 이와 같이:
if(열기[0] >= 열기[0+1] &&
열기[0+1] >= 열기[0+2] &&
열기[0+2]>= 열기[0+3] &&
열기[0+3] >= 열기[0+4] &&
열기[0+4] >= 열기[0+5] &&
열기[0+5] >= 열기[0+6]) 주문 = SIGNAL_SELL
이 코드에서는 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 - 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;
}
//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((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;
}
}
}
}
}
}
역 전문가 조언자 신호
누구든지 1 Expert Advisor에서 일부 코드를 변경하기 위해 Skype에서 나를 도울 수 있습니까?
나는 아주 좋은 것을 찾을 수 있습니다. 약간만 변경되어야 합니다.
내 스카이프: ctzulu
정말 감사합니다