흥미롭게도 목록의 마지막 시간을 선택하고 심지어 사이클까지 선택하면 시간이 무엇인지, 왜 닫는 시간을 기억합니까? 그리고 스왑과 커미션을 고려하지 않는 이유는 무엇입니까? OrderProfit()>0인 경우에도 실제 이익은 음수일 수 있습니다. 주문 목록으로 직접 작업하는 경우 마지막 마감 시간에 대한 검색 주기 코드의 일부를 남겨 둘 필요도 없습니다. 한 가지 - 신뢰성과 자신감, 또는 속도입니다. 그리고 당신은 혼합이 있습니다.
Artyom Trishkin : 흥미롭게도 목록의 마지막 시간을 선택하고 심지어 사이클까지 선택하면 시간이 무엇인지, 왜 닫는 시간을 기억합니까? 그리고 스왑과 커미션을 고려하지 않는 이유는 무엇입니까? OrderProfit()>0인 경우에도 실제 이익은 음수일 수 있습니다. 주문 목록으로 직접 작업하는 경우 마지막 마감 시간에 대한 검색 주기 코드의 일부를 남겨 둘 필요도 없습니다. 한 가지 - 신뢰성과 자신감, 또는 속도입니다. 그리고 당신은 혼합이 있습니다.
당신은 제공하고 있습니다
if ( OrderSelect (OrdersHistoryTotal(),SELECT_BY_POS,MODE_HISTORY))
그렇게 합니까?
그 남자는 이익 주문만 요구했는데 왜 그들이 요구하지 않은 것을 귀찮게합니까? 하지만 동의합니다....
MT4의 MQL4에서 20개 바 후에 미결 주문을 마감하는 방법, 즉 주문을 여는 방법과 20개의 새 바가 나타나는 방법 - 주문이 마감되는 방법을 알려주세요. (항상 1개의 주문만 열려 있습니다). 어떤 이유에서인지 이 코드는 전략 테스터 에서 작동하지 않지만 작동하려면 필요합니다.
이 코드의 의미는 다음과 같습니다. 미결 주문이 있는지 확인하고, 없으면 주문을 열고 첫 번째 막대의 시작 가격을 변수 "z"에 쓴 다음 각 틱으로 시작 가격을 확인합니다. 20번째 막대이고 시간이 지남에 따라 동일한 1번째 막대가 20번째 막대가 되면 해당 가격은 "z" 변수에 기록된 가격과 일치하고 그 후에 주문이 마감됩니다. (물론 이 과정에서 가격이 일치하는 경우가 있을 수 있지만 이것은 매우 드물며, 게다가 변수에 첫 번째 막대의 매개변수를 몇 개 더 쓸 수도 있습니다)
double z; //объявление переменной//ОТКРЫТИЕ ОРДЕРАif ( OrdersTotal () == 0 ) // если нет открытых ордеров то открывать ордер
{
OrderSend ( Symbol (), OP_SELL, 0.1 , Bid, 3 , Bid+ 150 * Point , Bid- 10 * Point );
z = Open[ 1 ]; // здесь переменной "z" присваивается цена открытия 1-го бара
}
elsePrint ( "ORDER NE USTANOVLEN!!!" );
//ЗАКРЫТИЕ ОРДЕРАif (z==Open[ 20 ]) //если цена записанная в переменную "z" равна цене 20-го бара, то закрывать ордер
{
//-----------------код закрывает все ордера--------------------bool result;
int error;
while ( OrdersTotal ()> 0 )
{
if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES))
{ if (OrderType()==OP_BUY) result=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)), 3 ,CLR_NONE);
if (OrderType()==OP_SELL) result=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)), 3 ,CLR_NONE);
if (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
OrderDelete(OrderTicket());
if (result!=TRUE) { error= GetLastError ();
Print ( "LastError = " ,error, " " , Symbol ()); }
else error= 0 ; }
elsePrint ( "Error when order select " , GetLastError ());
}
//------------конец кода закрывающего ордер------------------
}
elsePrint ( "ORDER NE ZAKRYT!!!" );
MT4의 MQL4에서 20개 바 후에 미결 주문을 마감하는 방법, 즉 주문을 여는 방법과 20개의 새 바가 나타나는 방법 - 주문이 마감되는 방법을 알려주세요. (항상 1개의 주문만 열려 있습니다). 어떤 이유에서인지 이 코드는 전략 테스터 에서 작동하지 않지만 작동하려면 필요합니다.
이 코드의 의미는 다음과 같습니다. 미결 주문이 있는지 확인하고, 없으면 주문을 열고 첫 번째 막대의 시작 가격을 변수 "z"에 쓴 다음 각 틱으로 시작 가격을 확인합니다. 20번째 막대이고 시간이 지남에 따라 동일한 1번째 막대가 20번째 막대가 되면 해당 가격은 "z" 변수에 기록된 가격과 일치하고 그 후에 주문이 마감됩니다. (물론 이 과정에서 가격이 일치하는 경우가 있을 수 있지만 이것은 매우 드물며, 게다가 변수에 첫 번째 막대의 매개변수를 몇 개 더 쓸 수도 있습니다)
모든 것, 나는 그것을 스스로 알아 냈습니다. int start () 외부에서 변수를 선언해야했습니다. 이제 제대로 작동합니다.
안녕하세요.
MT4에서 어드바이저와 거래할 때 코드를 올바르게 작성하는 방법을 알려주십시오. 저 자신도 프로그래밍이 처음입니다.
나는 마지막으로 마감된 주문을 선택하고 조건에 따라 이익을 비교해야 합니다. 주문의 이익이 0보다 크면 할 일이 없고, 0보다 작으면 뭔가를 하십시오.
진심으로, 알렉산더.
안녕하세요.
MT4에서 어드바이저와 거래할 때 코드를 올바르게 작성하는 방법을 알려주십시오. 저 자신도 프로그래밍에 매우 익숙하지 않습니다.
나는 마지막으로 마감된 주문을 선택하고 조건에 따라 이익을 비교해야 합니다. 주문의 이익이 0보다 크면 할 일이 없고, 0보다 작으면 뭔가를 하십시오.
진심으로, 알렉산더.
흥미롭게도 목록의 마지막 시간을 선택하고 심지어 사이클까지 선택하면 시간이 무엇인지, 왜 닫는 시간을 기억합니까? 그리고 스왑과 커미션을 고려하지 않는 이유는 무엇입니까? OrderProfit()>0인 경우에도 실제 이익은 음수일 수 있습니다. 주문 목록으로 직접 작업하는 경우 마지막 마감 시간에 대한 검색 주기 코드의 일부를 남겨 둘 필요도 없습니다. 한 가지 - 신뢰성과 자신감, 또는 속도입니다. 그리고 당신은 혼합이 있습니다.
당신은 제공하고 있습니다
그렇게 합니까?
그 남자는 이익 주문만 요구했는데 왜 그들이 요구하지 않은 것을 귀찮게합니까? 하지만 동의합니다....
MT4의 MQL4에서 20개 바 후에 미결 주문을 마감하는 방법, 즉 주문을 여는 방법과 20개의 새 바가 나타나는 방법 - 주문이 마감되는 방법을 알려주세요. (항상 1개의 주문만 열려 있습니다). 어떤 이유에서인지 이 코드는 전략 테스터 에서 작동하지 않지만 작동하려면 필요합니다.
이 코드의 의미는 다음과 같습니다. 미결 주문이 있는지 확인하고, 없으면 주문을 열고 첫 번째 막대의 시작 가격을 변수 "z"에 쓴 다음 각 틱으로 시작 가격을 확인합니다. 20번째 막대이고 시간이 지남에 따라 동일한 1번째 막대가 20번째 막대가 되면 해당 가격은 "z" 변수에 기록된 가격과 일치하고 그 후에 주문이 마감됩니다. (물론 이 과정에서 가격이 일치하는 경우가 있을 수 있지만 이것은 매우 드물며, 게다가 변수에 첫 번째 막대의 매개변수를 몇 개 더 쓸 수도 있습니다)
MT4의 MQL4에서 20개 바 후에 미결 주문을 마감하는 방법, 즉 주문을 여는 방법과 20개의 새 바가 나타나는 방법 - 주문이 마감되는 방법을 알려주세요. (항상 1개의 주문만 열려 있습니다). 어떤 이유에서인지 이 코드는 전략 테스터 에서 작동하지 않지만 작동하려면 필요합니다.
이 코드의 의미는 다음과 같습니다. 미결 주문이 있는지 확인하고, 없으면 주문을 열고 첫 번째 막대의 시작 가격을 변수 "z"에 쓴 다음 각 틱으로 시작 가격을 확인합니다. 20번째 막대이고 시간이 지남에 따라 동일한 1번째 막대가 20번째 막대가 되면 해당 가격은 "z" 변수에 기록된 가격과 일치하고 그 후에 주문이 마감됩니다. (물론 이 과정에서 가격이 일치하는 경우가 있을 수 있지만 이것은 매우 드물며, 게다가 변수에 첫 번째 막대의 매개변수를 몇 개 더 쓸 수도 있습니다)
모든 것, 나는 그것을 스스로 알아 냈습니다. int start () 외부에서 변수를 선언해야했습니다. 이제 제대로 작동합니다.
나는 그것을 조금 단순화했지만 당신의 코드에는 여전히 오류가 있습니다
다중 통화 어드바이저를 작성 중이지만 어드바이저를 다른 통화에 걸면 동시에 다른 가격을 반환하는 이유를 이해할 수 없습니다.
간단히 코드에서:
초기화에서
OnTimer()
EURNZD에서 고문을 테스트하면 예를 들어
2015.05.18 00:07:00 LatAsk : 1.5370
내가 다른 통화 쌍에 고문을 매달면
2015.05.18 00:07:00 LatAsk : 1.5323
값은 근본적으로 다르며 두 번째 경우 일정에 따라 이러한 값은 적어도 몇 시간이 될 수 없습니다.
테스터에서 모든 틱은 거래 모드에 있으며 메인 쌍이 아닌 것처럼 느껴지며 테스터의 값은 대략적입니다.
나는 이것이 Meta Trade 5 라는 것을 추가하는 것을 잊었습니다.
처음 출시할 때 가격이 틀려 다시 테스트를 해보니 가격이 정상
autochartis를 완전히 지우는 방법?