좋은 오후입니다! 모든 포럼 참가자들에게 존경을 표합니다! 가능하다면 말해주세요 - 플랫폼을 끄면 로그의 데이터는 반드시 지워지겠죠? 그리고 전문가의 인쇄물이나 다른 출력 데이터를 작성하여 컴퓨터가 꺼졌을 때 저장되도록 하는 방법은 무엇입니까? 메모장이나 다른 곳에? 너무 어려운데 가능한가요?
dkfl.zrjdktdbx : 좋은 오후입니다! 모든 포럼 참가자들에게 존경을 표합니다! 가능하다면 말해주세요 - 플랫폼을 끄면 로그의 데이터는 반드시 지워지겠죠? 그리고 전문가의 인쇄물이나 다른 출력 데이터를 작성하여 컴퓨터가 꺼졌을 때 저장되도록 하는 방법은 무엇입니까? 메모장이나 다른 곳에? 너무 어려운데 가능한가요?
sss2019 : 주문 개시 가격과 손절매 가격을 고려할 때 예금 통화의 가능한 손실을 계산하는 방법을 알려주실 수 있습니까?
//--------------------------------------------------------------------// Функция модификации StopLoss всех ордеров указанного типа// Глобальные переменные:// Mas_Ord_New Массив ордеров последний известный// int TralingStop Значение TralingStop(количество пунктов)//--------------------------------------------------------------------void SampleTrailing_texbook ( int Tip, double V_StopLossPips, double V_TakeProfitPips)
{
int Ticket; // Номер ордераdouble
Price, // Цена открытия рыночного ордера
TS, // TralingStop (относит.знач.цены)
SL, // Значение StopLoss ордера
TP; // Значение TakeProfit ордераdouble difference; //разность в пунктах double Profit;
bool Modify; // Признак необходимости модифи.//----------------------------------------------------------------------
PointValue=MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE));
Print( "PointValue = " ,PointValue, " Point = " , DoubleToStr(Point, Digits) );
Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL ); // мин уровень трала
Modify= false ; // Пока не назначен к модифи
Price = OrderOpenPrice(); // Цена открытия ордера
SL = V_StopLossPips; // Значение StopLoss ордера
TP = V_TakeProfitPips; // Значение TakeProft ордера
Ticket= OrderTicket(); // Номер ордераif (TralingStop<Level_new) // Если меньше допустимого..
TralingStop=Level_new; // .. то допустимый
TS=TralingStop*Point; // То же в относит.знач.цены//-----------------------------------------------------------------switch (Tip) // Переход на тип ордера
{
case0 : // Ордер Buy
difference = NormalizeDouble (Bid-TS - OrderOpenPrice(), Digits)/Point;
Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit)if (trlinloss== false ){ // тралим только профитif (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз if (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
NormalizeDouble(Bid-TS,Digits) && NormalizeDouble(Price,Digits)< NormalizeDouble(Bid-TS,Digits))
{ // ..то модифицируем его:
SL=Bid-TS; // Новый его StopLoss
Modify= true ; // Назначен к модифи.
}
}
else { // тралим с зоны лоссовif (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
NormalizeDouble(Bid-TS,Digits))
{ // ..то модифицируем его:
SL=Bid-TS; // Новый его StopLoss
Modify= true ; // Назначен к модифи.
}
}
break ; // Выход из switchcase1 : // Ордер Sell
difference = NormalizeDouble (OrderOpenPrice()-(Ask+TS),Digits)/Point;
Profit = Lots_New * difference*PointValue; // Профит по УРОВНЮ ТРАЛА рыночного ордера на данном объеме (не путать c OrderProfit) if (trlinloss== false ) { // тралим с уровня профита по ордеруif (Profit>MathAbs (Sum_Loss)) // если профит по уровню трала больше суммарного убытка предыдущих поз if ((NormalizeDouble(SL,Digits)> // Если выше желаемого..
NormalizeDouble(Ask+TS,Digits)||
NormalizeDouble(SL,Digits)== 0 ) && NormalizeDouble(Price,Digits)>NormalizeDouble(Ask+TS,Digits)) //.. или нулевой(!)
{ // ..то модифицируем его
SL=Ask+TS; // Новый его StopLoss
Modify= true ; // Назначен к модифи.
}
}
else { // тралим с зоны лоссовif (NormalizeDouble(SL,Digits)> // Если выше желаемого..
NormalizeDouble(Ask+TS,Digits)||
NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!)
{ // ..то модифицируем его
SL=Ask+TS; // Новый его StopLoss
Modify= true ; // Назначен к модифи.
}
}
} // Конец switchif (Modify== false ) // Если его не надо модифи..return ; // ..то идём по циклу дальшеbool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его!//----------------------------------------------------------------------if (Ans== false ) // Не получилось :(
{ // Поинтересуемся ошибками:
Print( "Не удалось модифицировать ордер №" ,OrderTicket(), ". Ошибка: " ,GetLastError());
return ; // .. то уходим.
}
} // Выход из пользов. функции
이 f-iya 트롤 은 교과서에서 가져온 것으로 내 필요에 따라 내가 다시 만들었습니다. 여기에서 주어진 양의 로트에 대한 이익의 계산, 후행 수준 및 이전에 마감된 연속적인 무익한 포지션의 총 손실보다 높은 이익 가치 - 추적이 켜짐 - 유추에 따라 모든 것을 갖게 되며 적용하지 않을 뿐입니다. 여기에는 이익이 있지만 손실은 필요합니다.
매수 및 매도 변수 계산에 주의하십시오.
double difference; //разность в пунктах double Profit;
PointValue= MarketInfo ( Symbol (),MODE_TICKVALUE)*( MarketInfo ( Symbol (),MODE_POINT)/ MarketInfo ( Symbol (),MODE_TICKSIZE));
int iHighest ( 문자열 기호, 정수 기간, 정수 유형, 정수 개수=WHOLE_ARRAY, 정수 시작=0)
발견된 가장 높은 값의 인덱스를 반환합니다(현재 막대에 상대적인 오프셋).사람이 이해할 수 없는 것이 무엇인지 모릅니다. 공격성과 무례함을 일으킨 원인을 이해하지 못하지만(그들은 그냥 무시할 수 있음) 다른 사람들이 스스로 대답하거나 처리할 수 있었을 것입니다. 상관없나요?
여기에 있습니다(코드에 더 많은 오류가 있지만 컴파일러를 통과하지도 않습니다): 게다가 컴파일러의 관점에서 코드를 보다 정상적인 코드로 변경하더라도:
비교하기 전에 실제 값을 먼저 정규화하지 않으면 여전히 이론적으로 올바르지 않습니다. 그보다 더 나쁜 것은 가격이 한 틱에 1핍 이상 변동하고 조건을 초과하는 경우 정규화 결과를 얻지 못할 수 있다는 것입니다.
다음과 같이 교차 조건을 검색하는 것이 더 정확합니다.
PS MetaTrader에서 컴파일 후 오류가 있는 위치를 찾는 것은 매우 쉽습니다.
1. "파일" 열의 "도구" 탭에서 괄호 안에 컴파일러가 오류를 감지한 줄 번호와 기호 번호가 쉼표로 구분되어 표시됩니다.
2. "설명" 열의 동일한 탭에서 오류 메시지를 두 번 클릭하면 편집기의 커서가 컴파일러가 바로 이 오류를 발견한 위치로 이동합니다.
힌트를 주셔서 감사합니다.
좋은 오후입니다! 모든 포럼 참가자들에게 존경을 표합니다! 가능하다면 말해주세요 - 플랫폼을 끄면 로그의 데이터는 반드시 지워지겠죠? 그리고 전문가의 인쇄물이나 다른 출력 데이터를 작성하여 컴퓨터가 꺼졌을 때 저장되도록 하는 방법은 무엇입니까? 메모장이나 다른 곳에? 너무 어려운데 가능한가요?
주문 개시 가격과 손절매 가격을 고려할 때 예금 통화의 가능한 손실을 계산하는 방법을 알려주실 수 있습니까?
이 f-iya 트롤 은 교과서에서 가져온 것으로 내 필요에 따라 내가 다시 만들었습니다. 여기에서 주어진 양의 로트에 대한 이익의 계산, 후행 수준 및 이전에 마감된 연속적인 무익한 포지션의 총 손실보다 높은 이익 가치 - 추적이 켜짐 - 유추에 따라 모든 것을 갖게 되며 적용하지 않을 뿐입니다. 여기에는 이익이 있지만 손실은 필요합니다.
매수 및 매도 변수 계산에 주의하십시오.
모든 것을 같은 방식으로 수행하십시오.그래서 나는 여전히 예금 통화에서 핍의 가치를 찾는 방법을 이해하지 못합니까?
이 계산을 참조하십시오 - 유사하게 수행하십시오. 모두.