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

 
fmillion :
'' - 프로그램의 예기치 않은 종료 G:\work\MetaTrader Group\experts\Balista.mq4 (576, 1)

나는 마우스로 찔러 - 코멘트가있는 곳으로 이동합니다 ((... 어떻게 될까요?


오류를 찾는 가장 쉬운 방법은 MetaEditor의 "취소" 매직 버튼입니다. 그리고 다음 취소 후 코드를 다시 컴파일해 보세요.
 
안녕하세요! 말하다. 나는 내가 사용할 것이라고 생각한다
 double iMA (     string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

도움말에는 timeframe - 기간이라고 나와 있습니다. 차트 기간 중 하나일 수 있습니다. 0은 현재 차트의 기간을 의미합니다.

그래서 아마도, 아니면 차트의 기간 동안에만 해당됩니까? 하지만 거기에 들어가면 15가 아니라 20 ?? 그리고 숫자로 쓰는게 나을까요, 아니면 PERIOD_M15가 낫나요?

좋아, 나는 거기에 0을 입력했고 나는 장난하지 않습니다.

 

좋은 하루 되세요. 누군가 이 표시기에 소리를 삽입할 수 있다면 매우 감사하겠습니다.

저것들. mashak을 건널 때 .... 그리고 물론이 교차로가 떨어진 양초의 끝에서 소리가 한 번만 나와야합니다.

미리 감사드립니다.

파일:
 
Dimka-novitsek :
안녕하세요! 말하다. 나는 내가 사용할 것이라고 생각한다

도움말에는 timeframe - 기간이라고 나와 있습니다. 차트 기간 중 하나일 수 있습니다. 0은 현재 차트의 기간을 의미합니다.

그래서 아마도, 아니면 차트의 기간 동안에만 해당됩니까? 하지만 거기에 들어가면 15가 아니라 20 ?? 그리고 숫자로 쓰는게 나을까요, 아니면 PERIOD_M15가 낫나요?

좋아, 나는 거기에 0을 입력했고 나는 장난하지 않습니다.

기간은 분 단위로 지정됩니다. 예를 들어 60은 1시간, 240은 4시간... 등, 5는 M5입니다.
 

KimIV 에서 마지막 청산 주문 에서 인출 / 이익 크기 를 반환 하는 기능 을 찾지 못했습니다 .

아이디어는 간단합니다. 마지막으로 마감된 주문에서 예금 통화 의 이익 또는 인출 금액을 추적해야 합니다.

 
fmillion :

KimIV 에서 마지막 청산 주문 에서 인출 / 이익 크기 를 반환 하는 기능 을 찾지 못했습니다 .

아이디어는 간단합니다. 마지막으로 마감된 주문에서 예금 통화의 이익 또는 인출 금액을 추적해야 합니다.

이 빌드는 저에게 효과적입니다.

 //---Поиск крайнего отработавшего ордера для открытия очередной позиции ---   
   for (orderIndex = ( OrdersHistoryTotal () - 1 ); orderIndex >= 0 ; orderIndex--)
   {   
       if (! OrderSelect (orderIndex, SELECT_BY_POS, MODE_HISTORY)) { Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" ); continue ;}   
       if (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != MagicNumber))   continue ;              
   //------------------------- Принимаем в расчет только ордер, закрытый cамым крайним -----------------------
       if (time< OrderCloseTime ())     //(сравниваем его с хранящимся в пероеменной time) 
        {
         time= OrderCloseTime ();     //если время закрытия ордера больше - ложим его в переменную     
         int lastType = OrderType ();
         double lastLots = OrderLots ();
         double lastProfit = OrderProfit () + OrderSwap ();
         
         // Анализ только что закрывшегося ордера      
         if (lastProfit >= 0.0 )
         {
...
 
Roman. :

이 빌드는 저에게 효과적입니다.

루프의 시작 부분에서 시간 변수의 값은 얼마입니까?
 
fmillion :

KimIV 에서 마지막 청산 주문 에서 인출 / 이익 크기 를 반환 하는 기능 을 찾지 못했습니다 .

아이디어는 간단합니다. 마지막으로 마감된 주문에서 예금 통화의 이익 또는 인출 금액을 추적해야 합니다.

알고리즘은 다음과 같습니다. 마지막으로 마감된 주문에 중요하지 않은 항목을 반환하는 모든 함수에 대해 같은 위치에서 찾습니다. 마지막으로 마감된 주문의 티켓을 받습니다. 주문 주기를 종료하면 수신된 티켓을 기반으로 주문을 선택하고 이익을 계산합니다. 중요한 경우 다음을 계산할 때 스왑 및 커미션을 고려하는 것을 잊지 마십시오.

    Profit = OrderProfit () + OrderSwap () + OrderCommission ();
 

교과서 정보:

int ObjectGetShiftByValue ( 문자열 이름, 이중 값)
이 함수는 지정된 가격에 대한 막대 번호(현재 막대에 상대적인 오프셋)를 계산하고 반환합니다. 막대 번호는 첫 번째 및 두 번째 좌표에 대한 선형 방정식을 사용하여 계산됩니다. 추세선 및 유사한 개체에 사용됩니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출하십시오.
ObjectGetValueByShift() 도 참조하십시오 .
옵션:
이름 - 개체의 이름입니다.
- 가격 가치.
예시:
 int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34);

문제:

여기에 오류가 있는 경우 메시지 표시줄 번호 -1이 표시됩니다(저는 역사상 최초의 표시줄입니다). 설명서에서 더 많은 정보를 찾을 수 없었습니다. 가격으로 바 번호를 찾는 방법은 무엇입니까?

 //=============================================================
int bar;
double cena;
//=============================================================
int start(){
cena= 1.3020 ;
bar= ObjectGetShiftByValue ( "bar" ,cena);
if (bar== 0 ){ Alert ( "Ошибка = " , GetLastError ());}
else if (bar!= 0 ){ Alert ( "Номер бара = " ,bar);}}
//============================================================
 
TarasBY :

알고리즘은 다음과 같습니다. 마지막으로 마감된 주문에 중요하지 않은 항목을 반환하는 모든 함수에 대해 같은 위치에서 찾습니다. 마지막으로 마감된 주문의 티켓을 받습니다. 주문 주기를 종료하면 수신된 티켓을 기반으로 주문을 선택하고 이익을 계산합니다. 중요한 경우 다음을 계산할 때 스왑 및 커미션을 고려하는 것을 잊지 마십시오.

의미있는 답변 감사합니다. 나는 이미 스스로 추측했다))
사유: