init() 블록에서 헤더로 모든 변수를 끌어야 했습니다. 그렇지 않으면 변수가 표시되지 않습니다. 내 첫 번째 실수. 둘째, 컴파일러는 함수에서 기본 매개변수 값을 NULL로 설정하려고 시도할 때 맹세합니다. 셋째, 컴파일러는 코드에서 정의되지 않은/정의되지 않은 함수(CorrectPrice() 및 DrawArrowOnChart())를 만나면 맹세하지 않습니다. 아마도 그는 NULL로 비틀거리며 더 이상 욕을 하지 않을 것입니다. 엉뚱하게 함수 정의를 했네요 - 사전에서 복사해서 왔는데 개발자들이 잘못된 선언으로 저를 꾸짖으면 ....
//+------------------------------------------------------------------+
//| Redefine OrderSend() function |
//+------------------------------------------------------------------+
int fut_OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit,
string comment=[b]NULL[/b],int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
{
if (CorrectPrice(symbol,cmd,price,myCurrentTime))
{
TradeOrdersArray[myOrdersTotal,0]= symbol;
TradeOrdersArray[myOrdersTotal,1]=pool_pos;
TradeOrdersArray[myOrdersTotal,2]=myOrderTicket+1;
TradeOrdersArray[myOrdersTotal,3]=cmd;
TradeOrdersArray[myOrdersTotal,4]=volume;
TradeOrdersArray[myOrdersTotal,5]=price;
TradeOrdersArray[myOrdersTotal,6]=slippage;
TradeOrdersArray[myOrdersTotal,7]=stoploss;
TradeOrdersArray[myOrdersTotal,8]=stoploss;
TradeOrdersArray[myOrdersTotal,9]=comment;
TradeOrdersArray[myOrdersTotal,10]=magic;
TradeOrdersArray[myOrdersTotal,11]=myCurrentTime;
DrawArrowOnChart(symbol,myCurrentTime,price,arrow_color);
myOrderTicket++;
myOrdersTotal++;
pool_pos++;
return(myOrderTicket);
}
else return(-1);
}
내일 나는 OrderClose()를 재정의하려고 노력할 것입니다. 거기에서 테스트하는 아이디어를 설명하는 것이 더 쉬울 것입니다. PS 두 사람이 이미 다운로드했습니다 - 희망이 있습니다
삭제해야 했던 댓글을 볼 수 있습니다.
TradeOrdersArray 및 ClosedOrdersArray 배열의 목적이 여기에 설명되어 있습니다. 글쎄, 조금 더.
CorrectPrice() 및 DrawArrowOnChart() 함수는 아직 정의되지 않았습니다.
여기에 게시됨 - http://forexsystems.ru/phpBB/viewtopic.php?p=4380#4380
init() 블록에서 헤더로 모든 변수를 끌어야 했습니다. 그렇지 않으면 변수가 표시되지 않습니다. 내 첫 번째 실수.
둘째, 컴파일러는 함수에서 기본 매개변수 값을 NULL로 설정하려고 시도할 때 맹세합니다.
셋째, 컴파일러는 코드에서 정의되지 않은/정의되지 않은 함수(CorrectPrice() 및 DrawArrowOnChart())를 만나면 맹세하지 않습니다.
아마도 그는 NULL로 비틀거리며 더 이상 욕을 하지 않을 것입니다.
엉뚱하게 함수 정의를 했네요 - 사전에서 복사해서 왔는데 개발자들이 잘못된 선언으로 저를 꾸짖으면 ....
내일 나는 OrderClose()를 재정의하려고 노력할 것입니다. 거기에서 테스트하는 아이디어를 설명하는 것이 더 쉬울 것입니다.
PS 두 사람이 이미 다운로드했습니다 - 희망이 있습니다
Rosh, 이 포럼에 러시아어 텍스트를 삽입하는 방법을 알아냈습니다.
편집기에서 코드를 복사할 때 러시아어가 있어야 합니다. 러시아어로 어떻게 쓰나요? 그리고 포럼에 각각 삽입될 때도 마찬가지입니다.
그리고 모든 댓글은 저장됩니다 ;)
다음은 빈 문 에 대해 논의할 수 있는 좋은 예입니다.
암시적 유형 변환은 ";"보다 훨씬 더 나쁘고 위험합니다. 브래킷 후.
이 경우 명확한 오류가 있지만 컴파일러는 경고도 발행하지 않습니다.
로쉬,
페이지가 다시 사라졌습니다.
나는 단지 Renat가 직접 보고 실수를 찾기를 원했습니다.
그러나 그들은 여기를 보지 않거나 내 게시물이 바보라고 생각하지 않는 것 같습니다.
(cit. - "우리는 어리석은 질문에 대답하지 않습니다..") - :))
이것은 MQL 구문(및/또는 컴파일러)의 단점에 관한 것입니다.
컴파일러는 경고를 받았을 수 있지만 어떤 식으로든 이 오류에 반응하지 않습니다.
그리고 나는 이것을 언어로 금지할 것입니다(암시적 유형 변환).
구체적으로.
TradeOrdersArray 배열은 double 유형 입니다.
여러 곳에서 문자열 값을 할당합니다.
예를 들어:
컴파일러는 이 모든 것을 먹고 테스터도 작동하지만 원하는 대로 작동하지 않습니다.
그리고 그러한 실수를 찾는 것은 매우 어렵습니다. 특히 한 달 전에 만든 경우,
그러나 그것은 내가 프로그램에 몇 줄을 추가했을 때만 오늘 나타났습니다.
(Plz., 스크립트 수정 - 페이지가 떠났습니다. 그렇지 않으면 보기가 불편합니다.)
이 광고의 경우
그러나 나는 템플릿으로 사전에서 복사했습니다.
나는 그렇지 않다고 생각한다.
2개의 다른 어레이에서만 가능합니다.