외부 문자열 sNameExpert = "DGJJFYGJD"; 외부 정수 n계정 = 0; 외부 이중 dBuyStopLossPoint = 0; 외부 이중 dSellStopLossPoint = 0; 외부 이중 dBuyTakeProfitPoint = 0; 외부 이중 dSellTakeProfitPoint = 0; 외부 이중 dBuyTrailingStopPoint = 0; 외부 이중 dSellTrailingStopPoint = 0; 외부 이중 dLots = 0.03; 외부 정수 nSlippage = 4; extern bool lFlagUseHourTrade = False; 외부 정수 nFromHourTrade = 0; 외부 int nToHourTrade = 23; extern bool lFlagUseSound = True; 외부 문자열 sSoundFileName = "alert.wav"; 외부 색상 colorOpenBuy = 파란색; extern color colorCloseBuy = 아쿠아; 외부 색상 colorOpenSell = 빨간색; 외부 색상 colorCloseSell = 아쿠아;
무효 deinit() { 논평(""); }
//+----------------------------------------------- --------------------+ //| | //+----------------------------------------------- --------------------+ 정수 시작(){ if (lFlagUseHourTrade){ if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) { Comment("거래의 시간이 오지 않았습니다!"); 리턴(0); } }
if(막대 < 100){ Print("100개 미만의 막대"); 리턴(0); }
if (nAccount > 0 && nAccount != AccountNumber()){ Comment("계정 거래 :"+AccountNumber()+" 금지!"); 리턴(0); }
이중 diMA0=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA1=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA2=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA3=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA4=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA5=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA6=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA7=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA8=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA9=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA10=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA11=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA12=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA13=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA14=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA15=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA16=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA17=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA18=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA19=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA20=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA21=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA22=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA23=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA24=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA25=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA26=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA27=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA28=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA29=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA30=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA31=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA32=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA33=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA34=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA35=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA36=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA37=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA38=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA39=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA40=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA41=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA42=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA43=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA44=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA45=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA46=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA47=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA48=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA49=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA50=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA51=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA52=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA53=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA54=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA55=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA56=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA57=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA58=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA59=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA60=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA61=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA62=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0); 이중 diMA63=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
TLup만 표시할 수 있습니다. 그리고 BezUbMMA23up도 사용하고 싶습니다. 그러나 return(TLup, WithoutUbMMA23up) 또는 return(TLup; WithoutUbMMA23up)과 같이 작성하면 오류가 발생합니다. 함수 호출은 - double ТЛup=Calculation ТЛup(a,Price1Sin);
TLup과 BezUbMMA23up을 모두 사용하려면 어떻게 신청하나요? 또는 BezUbMMA23up 매개변수를 계산하려면 위의 코드를 별도로 다시 작성하여 return(WithoutUbMMA23up) ?
여보세요. EMA 기간을 최적화할 수 있도록 어드바이저 코드에 무엇을 삽입해야 하는지 알려주실 수 있습니까?
#재산권 "hasgkhlhjgg"
#속성 링크 "http://www.efefrWRF.com"
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 316995
외부 문자열 sNameExpert = "DGJJFYGJD";
외부 정수 n계정 = 0;
외부 이중 dBuyStopLossPoint = 0;
외부 이중 dSellStopLossPoint = 0;
외부 이중 dBuyTakeProfitPoint = 0;
외부 이중 dSellTakeProfitPoint = 0;
외부 이중 dBuyTrailingStopPoint = 0;
외부 이중 dSellTrailingStopPoint = 0;
외부 이중 dLots = 0.03;
외부 정수 nSlippage = 4;
extern bool lFlagUseHourTrade = False;
외부 정수 nFromHourTrade = 0;
외부 int nToHourTrade = 23;
extern bool lFlagUseSound = True;
외부 문자열 sSoundFileName = "alert.wav";
외부 색상 colorOpenBuy = 파란색;
extern color colorCloseBuy = 아쿠아;
외부 색상 colorOpenSell = 빨간색;
외부 색상 colorCloseSell = 아쿠아;
무효 deinit() {
논평("");
}
//+----------------------------------------------- --------------------+
//| |
//+----------------------------------------------- --------------------+
정수 시작(){
if (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment("거래의 시간이 오지 않았습니다!");
리턴(0);
}
}
if(막대 < 100){
Print("100개 미만의 막대");
리턴(0);
}
if (nAccount > 0 && nAccount != AccountNumber()){
Comment("계정 거래 :"+AccountNumber()+" 금지!");
리턴(0);
}
if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) ||
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){
Print("StopLoss가 " + MIN_STOPLOSS_POINT보다 작음);
리턴(0);
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) ||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){
Print("TakeProfit이 " + MIN_TAKEPROFIT_POINT보다 작음);
리턴(0);
}
이중 diMA0=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA1=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA2=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA3=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA4=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA5=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA6=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA7=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA8=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA9=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA10=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA11=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA12=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA13=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA14=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA15=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA16=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA17=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA18=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA19=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA20=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA21=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA22=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA23=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA24=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA25=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA26=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA27=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA28=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA29=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA30=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA31=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA32=iMA(NULL,1,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA33=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA34=iMA(NULL,1,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA35=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA36=iMA(NULL,1,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA37=iMA(NULL,1,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA38=iMA(NULL,5,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA39=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA40=iMA(NULL,5,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA41=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA42=iMA(NULL,5,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA43=iMA(NULL,5,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA44=iMA(NULL,15,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA45=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA46=iMA(NULL,15,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA47=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA48=iMA(NULL,15,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA49=iMA(NULL,15,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA50=iMA(NULL,30,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA51=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA52=iMA(NULL,30,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA53=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA54=iMA(NULL,30,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA55=iMA(NULL,30,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA56=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA57=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA58=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA59=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA60=iMA(NULL,60,50,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA61=iMA(NULL,60,100,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA62=iMA(NULL,60,15,0,MODE_EMA,PRICE_CLOSE,0);
이중 diMA63=iMA(NULL,60,29,0,MODE_EMA,PRICE_CLOSE,0);
if(AccountFreeMargin() < (1000*dLots)){
Print("돈이 없습니다. Free Margin = " + AccountFreeMargin());
리턴(0);
}
부울 lFlagBuyOpen = 거짓, lFlagSellOpen = 거짓, lFlagBuyClose = 거짓, lFlagSellClose = 거짓;
dilFlagBuyOpen = (diMA0>diMA1 && diMA2>diMA3 && diMA4>diMA5 && diMA6>diMA7 && diMA8>diMA9 && diMA10>diMA11 && diMA12>diMA13 && diMA14>diMA15 && diMA16>diMA15 && diMA16>diMA18> && diMA24>diMA25 && diMA26>diMA27 && diMA28>diMA29);
dilFlagSellOpen = (diMA32<diMA33 && diMA34<diMA35 && diMA36<diMA37 && diMA38<diMA39 && diMA40<diMA41 && diMA42<diMA43 &&&diMA42<diMA43 &5&5&&diMA44<diMA45 && diMA46<diMA487 && && diMA58<diMA59 && diMA60<diMA61);
lFlagBuyClose = (diMA30<diMA31);
lFlagSellClose = (diMA62>diMA63);
if (!ExistPositions()){
if (lFlagBuyOpen){
오픈바이();
리턴(0);
}
if (lFlagSellOpen){
오픈셀();
리턴(0);
}
}
if (ExistPositions()){
if(주문유형()==OP_BUY){
if (lFlagBuyClose){
bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), 입찰, nSlippage, colorCloseBuy);
if (flagCloseBuy && lFlagUseSound)
플레이사운드(사운드파일명);
리턴(0);
}
}
if(주문유형()==OP_SELL){
if (lFlagSellClose){
bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell);
if (flagCloseSell && lFlagUseSound)
플레이사운드(사운드파일명);
리턴(0);
}
}
}
if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lmagic=거짓;
if (OrderSymbol()==Symbol() && lMagic) {
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {
if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {
if (OrderStopLoss()<Bid-dBuyTrailingStopPoint*Point)
ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point);
}
}
(주문 유형()==OP_SELL) {
if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) {
if (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point);
}
}
}
}
}
}
리턴(0);
}
부울 ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lmagic=거짓;
if (OrderSymbol()==Symbol() && lMagic) {
반환(참);
}
}
}
반환(거짓);
}
무효 ModifyStopLoss(이중 ldStopLoss) {
bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE);
if (lFlagModify && lFlagUseSound)
플레이사운드(사운드파일명);
}
무효 OpenBuy() {
이중 dStopLoss = 0, dTakeProfit = 0;
if (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*포인트;
if (dBuyTakeProfitPoint > 0)
dTakeProfit = 입찰가 + dBuyTakeProfitPoint * 포인트;
int numorder = OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
if (번호 > -1 && lFlagUseSound)
플레이사운드(사운드파일명);
}
무효 OpenSell() {
이중 dStopLoss = 0, dTakeProfit = 0;
if (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*포인트;
if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*포인트;
int numorder = OrderSend(Symbol(), OP_SELL, dLots, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (번호 > -1 && lFlagUseSound)
플레이사운드(사운드파일명);
}
여기 그가 있습니다. 이동 평균 기간을 최적화하는 것이 가능하고 모든 기간의 이동 평균 기간이 동일하기를 바랍니다(이 예에서와 같이). 다른 쌍에 사용하고 싶지만 유로 벅스 용으로 날카롭게되어 수동으로 다시 집어 듭니다. 정신적으로나 육체적으로 할 수 없습니다.
좋은 아침 !
함수 계산에서 두 개의 계산된 매개변수를 유도하는 방법을 알려주시겠습니까? 내가 올바르게 이해했다면 return() 함수는 괄호 안에 지정된 매개변수를 하나만 반환합니다.
TLup만 표시할 수 있습니다. 그리고 BezUbMMA23up도 사용하고 싶습니다. 그러나 return(TLup, WithoutUbMMA23up) 또는 return(TLup; WithoutUbMMA23up)과 같이 작성하면 오류가 발생합니다. 함수 호출은 - double ТЛup=Calculation ТЛup(a,Price1Sin);
TLup과 BezUbMMA23up을 모두 사용하려면 어떻게 신청하나요? 또는 BezUbMMA23up 매개변수를 계산하려면 위의 코드를 별도로 다시 작성하여 return(WithoutUbMMA23up) ?