프로그램에서 기간 변경에 대한 질문 ... 예를 들어, 다른 기간에 적용해야 하는 특정 순서의 연산자 가 있습니다. .. 제가 알기로는 주기 형식으로 하는 것이 더 쉽습니다. .. 마침표 변경 ... 문서에서 마침표 값을 반환하는 함수를 찾았습니다 .. 하지만 이를 변경할 함수를 찾지 못했습니다... 제가 무엇을 잘못 이해하고 있습니까?
bool isCloseLastPosByStop( string sy= "" , int op=- 1 , int mn=- 1 ) { // Объявление функции. Передаваемые параметры: sy = символ, op - тип, mn - магикdatetime t; // Переменная содержит время закрытия ордераdouble ocp, osl; // ocp - цена закрытия позиции, osl - цена СтопЛосс закрытой позицииint dg, i, j=- 1 , k=OrdersHistoryTotal(); // k содержит общее количество ордеров в историиif (sy== "0" ) sy= Symbol (); // Если в ф-цию передан sy равный 0 или NULL, то использовать символ графикаfor (i= 0 ; i<k; i++) { // Цикл по массиву закрытых ордеровif ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) { // Если выбран ордер из массива закрытых ордеров, ...if (OrderSymbol()==sy || sy== "" ) { // ... если его символ совпадает с нашим, ...if (OrderType()==OP_BUY || OrderType()==OP_SELL) { // ... если его тип Бай или Селл, ...if (op< 0 || OrderType()==op) { // ... если тип ордера равен или -1 (имеется ввиду любой) или равен переданному в ф-цию, ...if (mn< 0 || OrderMagicNumber()==mn) { // ... если его магик или любой (-1) или равен переданному в ф-цию (магику советника), ...if (t<OrderCloseTime()) { // ... если переменная t содержит время закрытия меньше, чем время закрытия выбранного ордера, то ...
t=OrderCloseTime(); // ... то присвоим переменной t время закрытия выбранного ордера (этот ордер закрыт позже предыдущего)
j=i; // Запишем в переменную j индекс найденного ордера с максимальным временем закрытия
}
}
}
}
}
}
} // По окончании цикла в переменной j находится индекс последнего закрытого ордераif ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) { // Выберем его по индексу
dg=MarketInfo(sy, MODE_DIGITS); // Количество цифр после десятичного точки в цене инструмента, заданного переменной syif (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ; // Честно... точно не скажу, но вижу, что корректировка под йену
ocp= NormalizeDouble (OrderClosePrice(), dg); // Нормализуем цену закрытия ордера для дальнейшего сравнения с ценой СтопЛосс
osl= NormalizeDouble (OrderStopLoss(), dg); // Нормализуем цену СтопЛосс ордера для сравнения с ценой закрытияif (ocp==osl) return (True); // Если эти цены равны, значит поза закрыта по стопу, возвращаем значение "Истина"
}
return (False); // Возвращаем "Ложь"
}
그것이 전체 논리입니다 ... Victor는 올바르게 말했습니다 - 중복되지만 가능한 한 간단합니다 ... :)
Skopcheny : 프로그램에서 기간 변경에 대한 질문 ... 예를 들어, 다른 기간에 적용해야 하는 특정 순서의 연산자가 있습니다. .. 제가 알기로는 주기 형식으로 하는 것이 더 쉽습니다. .. 마침표 변경 ... 문서에서 마침표 값을 반환하는 함수를 찾았습니다 .. 하지만 이를 변경할 함수를 찾지 못했습니다... 제가 무엇을 잘못 이해하고 있습니까?
안녕하세요, 저는 이 질문에 관심이 있습니다. alpari 는 24시간 근무한 고문을 삭제할 수 있는 서버를 제공합니까? 비공개로 답변 부탁드립니다.
뭔가 작동하지 않습니다. 여기에서 무언가를 변경하거나 시작 후에 넣어야 할 수도 있습니다.
종이에 있는 코드를 내가 이해할 수 있는 언어로 러시아어로 번역하려고 했지만 도달하지 못했습니다.
너무 복잡합니다. 특히 각 후속 조건의 조건이 8개 조건 중 하나인 경우
물론 그런 코드를 만든 사람이 단순히 기적이라고 주장하는 것은 아니지만 나에게 이것은 완전한 변태(좋은 의미에서)입니다.
표준 기능을 제외하고 각 작업과 조건에 주석을 추가하는 데 너무 게으르지 않은 사람.
코드에 약간의 중복성이 있지만 코드는 꽤 읽을 수 있습니다.
뭔가 당신과 함께 쟁기질하지 않지만이 코드는 아닙니다 ... :)
그것이 전체 논리입니다 ... Victor는 올바르게 말했습니다 - 중복되지만 가능한 한 간단합니다 ... :)
프로그램에서 기간 변경에 대한 질문 ... 예를 들어, 다른 기간에 적용해야 하는 특정 순서의 연산자가 있습니다. .. 제가 알기로는 주기 형식으로 하는 것이 더 쉽습니다. .. 마침표 변경 ... 문서에서 마침표 값을 반환하는 함수를 찾았습니다 .. 하지만 이를 변경할 함수를 찾지 못했습니다... 제가 무엇을 잘못 이해하고 있습니까?
차트 기간 은 다음 값 중 하나일 수 있습니다.
대단히 감사합니다. 설명이 필요합니다 ... 연산자 그룹이 특정 기간 동안 작동하려면 앞에 표시되는 형식으로 마침표 중 하나를 표시하는 것만으로도 충분합니다 이 테이블?
귀하의 질문에 올바르게 대답하려면 적어도 기간을 구체적으로 설정해야 하는 코드 예제를 보아야 합니다...
문자열 추세()
{int count,count_change;
더블 바 센터;
문자열 추세;
부울 클리어;
(int i=10;i!=0;i--)
{
bar_centr = (높음[i]-낮음[i])/2+낮음[i];
if (bar_centr>((높음[i+1]-낮음[i+1])/2+낮음[i+1]))
카운트++;
if (bar_centr<((높음[i+1]-낮음[i+1])/2+낮음[i+1]))
세다--;
}
인쇄(count,"period ", Period() );
if (count>3) trend="구매";
if (count<-3) 경향="판매";
if (count<3||count>-3) trend="불확실성";
반환(추세);}
이 기능은 서로 다른 기간에 순차적으로 적용해야 합니다 ... 터미널의 창에 어드바이저를 기간이 다른 창에 연결하면 작동합니다 ... 어드바이저 자체가 여러 다른 기간을 처리 할 수 있느냐가 문제입니다 ...
이 기능은 서로 다른 기간에 순차적으로 적용해야 합니다 ... 터미널의 창에 어드바이저를 기간이 다른 창에 연결하면 작동합니다 ... 어드바이저 자체가 여러 다른 기간을 처리 할 수 있느냐가 문제입니다 ...
제가 알기로는 현재 차트와 기간 뿐만 아니라 전달받은 차트와 함께 작동하려면 함수가 필요합니다...
이제 다음과 같이 함수를 호출하십시오.
추세(기호(), 기간()); // Expert Advisor가 정지된 차트 및 기간에 대한 값을 반환합니다...
추세(USDJPY, PERIOD_D1); // USDJPY 기호 및 "1일" 기간에 대한 값을 반환합니다.
PERIOD_D1 대신 1440을 입력할 수 있습니다.
매개변수 없이 호출되면 함수는 현재 기호 및 기간에 대한 값을 반환합니다(기본적으로 설정됨)
제가 알기로는 현재 차트와 기간 뿐만 아니라 전달받은 차트와 함께 작동하려면 함수가 필요합니다...
이제 다음과 같이 함수를 호출하십시오.
추세(기호(), 기간()); // Expert Advisor가 정지된 차트 및 기간에 대한 값을 반환합니다...
추세(USDJPY, PERIOD_D1); // USDJPY 기호 및 "1일" 기간에 대한 값을 반환합니다.
PERIOD_D1 대신 1440을 입력할 수 있습니다.
철저한 답변... 감사합니다...