Ticket =OrderTicket();
Tip =OrderType();
Lot =OrderLots();
MA2C =iMA(NULL,0, Period_MA2 ,0,MODE_SMA,PRICE_CLOSE,0);//Есть две MA с разным периодом.
MA3C =iMA(NULL,0, Period_MA3 ,0,MODE_SMA,PRICE_CLOSE,0);//И вот с такими параметрами.//Так же есть условия, при которых по идее должны срабатывать // функции закрытия ордеров.RefreshRates();if( Tip ==0&&Bid== MA2C )//Обозначение типа ордера и условия закрытия{
CloseBuy =true;// Закрыть Buy}RefreshRates();if( Tip ==0&&Bid== MA3C ){
CloseBuy =true;// Закрыть Buy}RefreshRates();if( Tip ==1&&Ask== MA2C ){
CloseSell =true;// Закрыть Sell}RefreshRates();if( Tip ==1&&Ask== MA3C ){
CloseSell =true;// Закрыть Sell}// Закрытие ордеровwhile(true)// Цикл закрытия орд.{if( Tip ==0&& CloseBuy ==true)// Открыт ордер Buy..{//и есть критерий закрAlert("Попытка закрыть Buy ", Ticket ,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT =OrderClose( Ticket , Lot ,Bid,3,Blue);// Закрытие Buyif( ALERT ==true)// Получилось :){Alert("Закрыт ордер Buy ", Ticket );break;// Выход из цикла закр}if( Fun_Error (GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}if( Tip ==1&& CloseSell ==true)// Открыт ордер Sell..{// и есть критерий закрAlert("Попытка закрыть Sell ", Ticket ,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT =OrderClose( Ticket , Lot ,Ask,3,Red);// Закрытие Sellif( ALERT ==true)// Получилось :){Alert("Закрыт ордер Sell ", Ticket );break;// Выход из цикла закр}if( Fun_Error (GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}break;// Выход из while}
이미 지금은 4가지 조건을 2로 변경할 수 있다고 생각합니다.
RefreshRates();if( Tip ==0&&Bid== MA2C || Tip ==0&&Bid== MA3C ){
CloseBuy =true;// Критерий закр. Buy}RefreshRates();if( Tip ==1&&Ask== MA2C || Tip ==1&&Ask== MA3C ){
CloseSell =true;// Критерий закр. Sell}
Symb =Symbol();// Название фин.инстр.
Total =0;// Количество ордеровfor(int i =1; i <=OrdersTotal(); i ++)// Цикл перебора ордер{if(OrderSelect( i -1, SELECT_BY_POS )==true)// Если есть следующий{// Анализ ордеров:if(OrderSymbol()!= Symb )continue;// Не наш фин. инструмif(OrderType()>1)// Попался отложенный{Alert("Обнаружен отложенный ордер. Эксперт не работает.");return;// Выход из start()}
Total ++;// Счётчик рыночн. ордif( Total >1)// Не более одного орд{Alert("Несколько рыночных ордеров. Эксперт не работает.");return;// Выход из start()}
Ticket =OrderTicket();// Номер выбранн. орд.
Tip =OrderType();// Тип выбранного орд.
Lot =OrderLots();// Количество лотов}//И далее как выше...
시각화 모드에서 테스트 할 때 MA에서 주문이 마감되지 않기 때문에 이것이 원칙적으로 가능한지 이해하는 것이 중요합니다.
전체 코드를 게시하십시오. 아직 여기에 손절매의 냄새가 없습니다...
손절매에 관한 것이 아니라 가격이 MA에 닿는 즉시 포지션이 닫힐 것입니다.
손절매에 관한 것이 아니라 가격이 MA에 닿는 즉시 포지션이 닫힐 것입니다.
그래서 당신은 손절매에 대해 썼습니다 ...) 어쨌든 코드가 없으면 작동하지 않는 이유를 이해할 수 없으며 배치 된 부분은 전혀 유익하지 않습니다.
그래서 당신은 손절매에 대해 썼습니다 ...) 어쨌든 코드가 없으면 작동하지 않는 이유를 이해할 수 없으며 배치 된 부분은 전혀 유익하지 않습니다.
내가 매우 부정확했을 것입니다. 죄송합니다. MA 자체가 손절매의 역할을 해야 한다는 뜻이었습니다. 즉,
... 가격이 MA에 닿자마자 포지션이 청산되었습니다.
그리고 코드는 매우 원시적입니다.
이미 지금은 4가지 조건을 2로 변경할 수 있다고 생각합니다.
그럼 그렇군요) 어쨌든 미친 조각이지만, 차들은 입찰 가격으로 만들어지고, 이렇게 비교하고... 글쎄요, 잘 모르겠습니다.
코드에 무언가가 있는데 OrderSelect 가 표시되지 않습니까?
교과서에서 표준입니다.
시각화 모드에서 테스트 할 때 MA에서 주문이 마감되지 않기 때문에 이것이 원칙적으로 가능한지 이해하는 것이 중요합니다.시각화 모드에서 테스트 할 때 MA에서 주문이 마감되지 않기 때문에 이것이 원칙적으로 가능한지 이해하는 것이 중요합니다.
원칙적으로는 가능합니다. 시스템에 한 번에 주문만 있습니까?
평등을 비교할 때 Bid/Ask 가격과 MA 값을 정상화하려고 노력하십시오. 누구에게나 필요합니다...
각 코드 조각은 틱으로 선택해야 합니다. 거기에 성배가 있습니까?) 즉시 전문가를 선택하는 것이 좋습니다. 오래전에 수정했을텐데
원칙적으로는 가능합니다. 시스템에 한 번에 주문만 있습니까?
평등을 비교할 때 Bid/Ask 가격과 MA 값을 정규화하십시오 . 누구에게나 필요합니다...
각 코드 조각은 틱으로 선택해야 합니다. 거기에 성배가 있습니까?) 즉시 전문가를 선택하는 것이 좋습니다. 오래전에 수정했을텐데
그 후로 머리가 핑 돌기 시작...
아니오) 다른 은하계와 마찬가지로 성배 이전에는 TS를 구현하고 개선하려고 시도합니다.
게시물의 모든 코드를 게시 할 수 없었습니다. 첨부합니다.
그 후로 머리가 핑 돌기 시작...
아니요) 다른 은하계와 마찬가지로 성배 이전에는 TS를 구현하고 개선하려는 시도만 있습니다.
게시물의 모든 코드를 게시 할 수 없었습니다. 첨부합니다.
글쎄, 물론 그것은 미친 짓입니다) 그러나 어떻게 든 인쇄에서 작동합니다.
부지의 증가를 제거한 유일한 것. 주문이 마감되지 않았다고 했습니까?
처럼...?
...동등한지 비교할 때 Bid/Ask 가격과 MA 값을 정규화...
정확히 어떻게 정규화하는지 잘 모르겠습니다... NormalizeDouble(Ask, Digits) ?
문제는 관련이 있습니다. MA 가격에 도달했을 때 주문을 즉시 강제 종료하는 방법에 대해 여전히 생각합니다.
컴파일 중 정규화 후 어떤 이유에서인지 코드에서 전혀 영향을 받지 않은 부분에서 오류가 발생했습니다.