[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 575

 

아르메니아로

이는 Expert Advisor에서 기능이 사용되지 않았음을 의미합니다. 다음과 같이 작성하십시오.

 if (CountBuys()> 2 && CountSells()> 2 ) {\\действия}

 
예를 들어, 초과자금이 어드바이저 업무 중 초기예치금을 초과하여 오픈포지션 을 청산하지 않고 초기예치금 한도 내로 놔두면 금고로 출금이 가능한지 알려주세요.
 
link1 :


Vinin, 답변 주셔서 대단히 감사합니다. 근데 솔직히 왜 ask1, ask2 ask3에 1, -1, -1 값이 할당되는지 조금 이해가 되지 않았습니다. 그들이 의미하는 것. 어렵지 않다면 무슨 일이 일어나고 있는지 말로 설명 할 수 있습니다. 나는 초보자이고 여전히 모든 것을 잘 이해하지 못합니다. 매우 감사하겠습니다)


충분한 데이터가 있는지 확인하기 위해 가격이 결코 같지 않은 값이 할당됩니다.

 
yosuf :
예를 들어, 초과 자금이 고문의 작업 중에 초기 예치금을 초과하고 열린 포지션을 닫지 않고 초기 예치금 한도 내로 두는 경우 금고로 초과 자금을 인출할 수 있습니까?

MT5 에서 TesterWithdrawal() 함수를 사용하여 이익 인출 시뮬레이션을 참조하십시오.

MT4에서는 이 기능이 구현되지 않습니다.

 

안녕하세요!

틱당 가격을 오르내리는 포인트 수를 세는 지표를 쓰고 있습니다.
코드에서 무엇이 잘못되었고 어디에서 오류가 발생했는지 알려주십시오. pliz!

#property indicator_chart_window

extern int LimitBar = 10;
extern int cegl = 6;
extern string Shrift = "Arial Black";
extern bool delete = true;



double old_price, max_price, sum_pip_sell, sum_pip_bay, new_pip_bay, new_pip_sell, old_pip_bay, old_pip_sell;
datetime ctat_SB =0;

int init() {return(0);}

int deinit() {
if (delete == true) {
GetDellName(); 
}
ObjectsDeleteAll(0, OBJ_TREND);
return(0);
}

int start() {
double price;
string name_4,name_b;
int i=0;
int limit, pip; 
double delta; 
int counted_bars=IndicatorCounted(); 
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
if(ctat_SB==0) ctat_SB=Time[0];

if(limit>0) limit=0;

for(i=limit; i>=0; i--) {
if(old_price==0) old_price=Close[i];

if(iBarShift(NULL,0,ctat_SB)-iBarShift(NULL,0,Time[i])>=LimitBar) { ' счетчик баров для LimitBar

sum_pip_sell =0;
sum_pip_bay = 0; 
new_pip_bay = 0;
new_pip_sell = 0;
old_pip_bay = 0;
old_pip_sell = 0;

} 

price = Close[i];
if(price > max_price) max_price=price; 

delta = price - old_price; ' разница пунктов
pip = delta*10000; ' округляем до целого

//---- Каунт плюс 

if(delta>=0) { ' условие для ап пунктов

new_pip_bay = pip;
sum_pip_bay = old_pip_bay+new_pip_bay;
old_pip_bay = sum_pip_bay; 

}
//---- Каунт минус
if(delta<0) { ' условие для даун пунктов

new_pip_sell = MathAbs(pip);
sum_pip_sell = old_pip_sell+new_pip_sell;
old_pip_sell = sum_pip_sell;

} 
//----
old_price=price;

//---- размещаем счетчик на графике
name_4 = "TPM_ 4 "+TimeToStr(ctat_SB);
SetText(name_4+"sell",DoubleToStr(sum_pip_sell,0), ctat_SB+60*Period()*2, max_price+(Ask-Bid)*6, Blue,12); 
SetText(name_4+"bay",DoubleToStr(sum_pip_bay,0),ct at_SB-60*Period()*2, max_price+(Ask-Bid)*4.5, Red,12); 

} 

return(0);
}
void SetText(string name,string text,datetime t1, double p1, color c, int size) // --- отображение текста
{
if (ObjectFind(name)!=-1) ObjectDelete(name);
ObjectCreate(name,OBJ_TEXT,0,0,0,0,0); 
ObjectSet(name, OBJPROP_TIME1 , t1);
ObjectSet(name, OBJPROP_PRICE1, p1); 
ObjectSetText(name,text,cegl,Shrift,c);
}

//+------------------------------------------------------------+
void GetDellName (string name_n = "TPM_ ") // -- удаление меток с графика
{
string vName;
for(int i=ObjectsTotal()-1; i>=0;i--)
{
vName = ObjectName(i);
if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
} 
} 
//----

미리 감사드립니다!

 
yosuf :
예를 들어, 초과 자금이 고문의 작업 중에 초기 예치금을 초과하고 열린 포지션을 닫지 않고 초기 예치금 한도 내로 두는 경우 금고로 초과 자금을 인출할 수 있습니까?

EA가 초기 예치금과 동일한 예치금으로만 거래 할 수 있도록 합니다.

초기 보증금의 크기를 기억하고 포지션을 열기 전에 로트를 확인하십시오. 거래량이 허용 크기를 초과하는 경우 - 로트를 줄이거나 자금을 해제하십시오.

 
Fox_RM :

안녕하세요!

틱당 가격을 오르내리는 포인트 수를 세는 지표를 쓰고 있습니다.
코드에서 무엇이 잘못되었고 어디에서 오류가 발생했는지 알려주십시오. pliz!

미리 감사드립니다!


왜 이렇게 많은 것이 있습니까???

마지막 틱의 가격을 기억하십시오. 새 틱이 도착하면 가격 차이를 포인트로 나눈 값을 계산하고 이 가격을 이전 틱의 가격으로 다시 기억하십시오.

 
artmedia70 :

왜 이렇게 많은 것이 있습니까???

마지막 틱의 가격을 기억하십시오. 새 틱이 도착하면 가격 차이를 포인트로 나눈 값을 계산하고 이 가격을 이전 틱의 가격으로 다시 기억하십시오.

코드의 AP 및 DOWN 포인트 조건에서는 이것이 정확히 쓰여져 있지만 , 가격 차트에 표시기가 표시 될 때 레이블은 0을 위로 표시하고 0을 아래로 표시합니다. 나는 무엇이 잘못되었는지 이해하지 못한다!
 

프로그래머님!

MQL4 작업의 우선 순위(및 연관성)가 C 언어에 해당합니까?

괄호를 남용하고 싶지는 않지만 문서의 어디에도 작업의 우선 순위가 지정되어 있지 않습니다.

질문이 유휴 상태가 아닙니다. MQL4는 C와 같은 언어로 자리 잡았습니다. 여기서 키워드는 LIKE입니다. 부울 표현식을 완전히 평가하는 것과 같은 것이 단순히 C 표준에서 벗어나는 것이라면 블록에 정의된 변수를 해당 블록 외부에서 볼 수 있도록 하는 것은 프로그래밍 규칙을 심각하게 위반하는 것입니다.

MQL4 제작자의 상상력이 어디까지 갈 수 있을지 누가 알겠습니까 :).

 
artmedia70 :

EA가 초기 예치금과 동일한 예치금으로만 거래할 수 있도록 합니다.

초기 보증금의 크기를 기억하고 포지션을 열기 전에 로트를 확인하십시오. 거래량이 허용 크기를 초과하는 경우 - 로트를 줄이거나 자금을 해제하십시오.

내 말은: 10,000 ckt의 예금으로 마이크로 리얼에서 거래, 고문이 운영하는 동안 내가 원할 때마다 수동으로 초과 자금을 금고로 인출할 수 있습니까? 그런 다음 초과 자금을 인출합니까? 나는 일정한 로트 0.1로 거래합니다. 권장 사항을 실제로 구현하는 방법: " 고문이 초기 예치금과 동일한 예치금으로만 거래할 수 있도록 허용합니다 ."?