코딩하는 방법? - 페이지 92

 
delvinja:
안녕하세요 여러분, 저는 이 전문 고문이 mt4에서 긴 거래를 성공 없이 실행하도록 하기 위해 지난 3일 동안 노력해 왔습니다. signal_buy 가 있더라도 짧은 거래만 실행합니다. 누구든지 이 코드를 보고 수정하거나 어떻게 해야 하는지 알려주세요. 저는 프로그래밍이 처음이고 온라인 전략 빌더에서 구축했습니다. 미리 감사합니다! 코드가 첨부되어 있습니다.
double ... = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);[/PHP]

I am not sure about the -3 shift parameter : it shift the curve to the left, so the current bar is undefinited. Try to replace all -3 by 0 to see if the buy orders are triggered.

I would replace

double Var1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Var2 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Var3 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double Var4 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);

double Buy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double Sell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);

double CloseBuy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

double CloseSell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);

double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);

by

[PHP]double Buy1_1 = iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, Current);

double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

double Sell1_1 = Buy1_1;

double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current);

double CloseBuy1_1 = Buy1_1;

double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

double CloseSell1_1 = Buy1_1;

double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);

렘 :

- Var1,2,3,4는 사용하지 않습니다.

- CloseBuy1_2와 CloseSell1_2는 모두 동일합니다. 하나는 아마도 틀릴 것입니다(MODE_LOWER).

 

코드에 대한 도움이 필요합니다

Michel, 도움을 주셔서 감사합니다. 완벽하게 해결했습니다! 너희들 최고야 드디어 쉴 수 있어. 제 테스트 결과를 알려드리겠습니다.

아 그건 그렇고, ru는 -3이 이 전문 고문에서 일할 수 없을 것이라고 말합니까? 다시 한번 감사합니다.

 
delvinja:
... 아 그건 그렇고, ru는 -3이 이 전문 고문에서 일할 수 없을 것이라고 말합니까? 다시 한번 감사합니다.

사실을 말하자면, 저는 이 시프트의 사용법을 전혀 이해하지 못했습니다. 현재 바 앞에 있는 3개의 바에 대한 indic의 값을 알고 싶다면 3을 시프트로 사용하고 마지막 하나를 사용하십시오. 첫 번째는 곡선의 그림을 옮기기만 하면 되고, 음수를 사용하면 과거가 미래를 아는 것과 같습니다...

어쨌든 누군가가 나에게 그것이 사용되는 것을 설명하면 기쁠 것입니다!

그러나 귀하의 질문에 답하기 위해 귀하가 따르고자 하는 정확한 전략을 알고자 노력하십시오. 어디에서 -3 입니까?

 

안녕하세요

이 전문가에 대해 모든 sl을 tp와 동일한 마지막 주문 sl로 수정하고 싶지만 그렇게 할 수 없습니다.

도와주세요

파일:
javadea.mq4  9 kb
 

내가 무슨 짓을 한?

MT4 코딩에 도움이 필요합니다

아래에 몇 가지 코드가 있습니다.

StopLoss=EMAtrend-iClose(NULL,0,1);

TakeProfit=손절매

If(EMAshort>EMAlong && EMAshort_prev<EMAlong_prev)

{

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask+StopLoss*Point,Bid+TakeProfit*Point," 종가 매수 ",10000,0,Green);

}

If(EMAshortEMAlong_prev)

{

OrderSend(Symbol(),OP_SELL,Lots,Bid,0,StopLoss,Bid+TakeProfit*Point,"종가 매도",11000,0,Red);

}

아이디어는 다음과 같습니다.

1. 조건 충족 시 종가로 오픈 주문

2. EMAtrend를 손절매 수준으로 만들고 싶습니다.

3. EMAtrend에서 종가까지의 거리는 시가에서 차익을 얻기 위한 거리가 됩니다.

위의 코드를 시도했지만 아무 일도 일어나지 않고 오류 130이 발생합니다.

도와주세요.

 

코드에 대한 도움이 필요합니다

안녕하세요 여러분

컴파일할 ea를 얻으려고 하는데 다음 오류가 발생합니다.

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

If I block this out it comes up with errors for the following bit of code :

[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }

if(TotalTradesThisSymbol(TradeSymbol)>0) {

for(cnt=0;cnt<total;cnt++) {

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()== Symbol) {

if(OrderMagicNumber()==11) { BS=OrderTicket(); }

if(OrderMagicNumber()==22) { SS=OrderTicket(); }

if(OrderMagicNumber()==33) { BL=OrderTicket(); }

if(OrderMagicNumber()==44) { SL=OrderTicket(); }

}//end if(OrderSymbol

}//end for

}//end if */

이 문제를 쉽게 해결할 수 있는 방법이 있는지 알고 싶습니다.

저는 코딩을 잘 못해서 복사해서 붙여넣기만 합니다.

미리 감사드립니다

바자

 
basza:
안녕하세요 여러분

컴파일할 ea를 얻으려고 하는데 다음 오류가 발생합니다.

'TradeSymbol' - expression on global scope not allowed I:\Program Files\MetaTrader - Alpari\experts\TTL.mq4 (65, 34)[/CODE]

Now the part of the ea causing this is right at the start of the code :

string TradeSymbol; TradeSymbol=Symbol();

If I block this out it comes up with errors for the following bit of code :

[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }

if(TotalTradesThisSymbol(TradeSymbol)>0) {

for(cnt=0;cnt<total;cnt++) {

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()== Symbol) {

if(OrderMagicNumber()==11) { BS=OrderTicket(); }

if(OrderMagicNumber()==22) { SS=OrderTicket(); }

if(OrderMagicNumber()==33) { BL=OrderTicket(); }

if(OrderMagicNumber()==44) { SL=OrderTicket(); }

}//end if(OrderSymbol

}//end for

}//end if */

이 문제를 쉽게 해결할 수 있는 방법이 있는지 알고 싶습니다.

저는 코딩을 잘 못해서 복사해서 붙여넣기만 합니다.

미리 감사드립니다

바자

글로벌 특종에서 TradeSymbol을 문자열로 정의할 수 있지만 여기서 Symbol() 함수 를 평가할 수 없습니다. 따라서 모든 "TradeSymbol"을 "Symbol()"로 바꾸거나 다음과 같이 init() 또는 start() 함수에 값을 할당하십시오.

void Init(){TradeSymbol=Symbol();}
 

프로그래밍에 도움

안녕하세요 저는 ea를 프로그래밍하려고 했고 귀하의 과정을 따랐습니다(매우 흥미롭습니다!)

Java 및 일부 C++로 프로그래밍하는 방법을 잘 알고 있습니다.

나는 두뇌 경향 지표를 사용하여 EA를 프로그래밍하려고 시도했습니다.

brainTrend2stop 및 braintrend1stop DOT가 있는 경우 구매(또는 그 반대)

하지만 icustom 함수 를 이렇게 호출하면

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;

나는 현재 막대에서 표시기의 값만 얻습니다.

부울로 만드는 방법이 있습니까? 나는 같은 기능을 작성하고 싶습니다

구매 = 사실

BuyCondition = (IndicatorName1=true && IndicatorName2=true);

누군가 제발 도와주세요???

 

진입 명령 실행 여부 제어...

나는 위치를 열고 관리하는 EA를 가지고 있지만 이 신호가 새로운 위치에 나올 때마다 표시기에 동일한 신호를 여러 번 주고 EA를 엽니다. 하지만 두 번째 또는 세 번째 등의 위치를 원하지 않습니다. 첫 번째만 - EA가 이러한 다중 항목을 피하기 위해 매직 넘버와 페어를 기반으로 오픈 포지션을 확인 하는 것이 가능합니까?

 
payback:
안녕하세요 저는 ea를 프로그래밍하려고 했고 귀하의 과정을 따랐습니다(매우 흥미롭습니다!)

Java 및 일부 C++로 프로그래밍하는 방법을 잘 알고 있습니다.

나는 두뇌 경향 지표를 사용하여 EA를 프로그래밍하려고 시도했습니다.

brainTrend2stop 및 braintrend1stop DOT가 있는 경우 구매(또는 그 반대)

하지만 icustom 함수를 이렇게 호출하면

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;

나는 현재 막대에서 표시기의 값만 얻습니다.

부울로 만드는 방법이 있습니까? 나는 같은 기능을 작성하고 싶습니다

구매 = 사실

BuyCondition = (IndicatorName1=true && IndicatorName2=true);

누군가 제발 도와주세요???
BuyCondition = BuyValueCurrent1 != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE;