이러한 모든 조건이 즉시 차례로 따르지 않을 수 있으므로(아마도 1-2-3시간 후에) 표시기 값이 1.0000에 도달하는 즉시 이 조건이 매 틱마다 더 이상 확인되지 않고 다음 시간까지 기다려야 합니다. 하나의 막대가 하락과 함께 닫히고 그 후 이 2가지 조건은 매 틱마다 확인되지 않고 지표 값이 0.9980 이하가 될 때까지 기다립니다. 모든 조건이 충족되면 400p의 손절매로 0.1랏을 판매하는 시장 주문을 엽니다. 400p 이익을 취하십시오.
일반적으로 모든 것이 정상이지만 지표가 반환하는 값에 세심한 주의를 기울일 것입니다.
bool Val_max=false, Cl_dn=false, Val_min=false;
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
int
i, j, total,
cnt,
OrderBuy,
OrderSell,
Magic,
Ticket, // Номер ордера
Total= 0 , // Количество ордеров в окне
Tip=- 1 ; // Тип выбран. ордера (B=0,S=1) double
Open_0,
ask,
bid,
Price, // Цена выбранного ордера
SL, // SL выбранного ордера
TP, // TP выбранного ордера
Lot; // Колич. лотов в выбран.ордере
Open_0=Open[ 0 ]; // Цена откр. формирующегося бара
ask=Ask; // Текущая цена покупки
bid=Bid; // Текущая цена продажиstring
Symb; // Название финанс. инструмента
Symb= Symbol (); // Название фин.инстр.double Value_max= 1.0000 ;
double Value_min= 0.9980 ;
double Open_1= Open[ 1 ];
double Close_1= Close[ 1 ];
//----//--------------------------------------------------------------- 4 --double Val= iCustom ( NULL , 0 , "HMR MULTI Indicator" , 0 , 0 );
if (Val >= Value_max) Val_max=true; // if (Open_1 > Close_1 && Val_max==true) Cl_dn=true;
if (Val <= Value_min && Cl_dn==true) Val_min=true;
if (Val_max==true && Cl_dn==true && Val_min==true)
{
for (j = 0 ; j < OrdersTotal (); j++)
{
OrderSelect (j, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol () == Symbol ())
{
if ( OrderType () == OP_SELL) return ( 0 );
}
}
OrderSend ( Symbol (),OP_SELL, 0.1 , NormalizeDouble (Bid, Digits ), 2 ,Bid+ 400 * Point ,Bid- 400 * Point , "" , 3 , Red ); // Открытие SELL
Val_max=false; Cl_dn=false; Val_min=false;
}
//----return ( 0 );
}
ObjectCreate가 하위 창을 찾는 표시기를 확인하십시오(또는 왜 IF TESTING 또는 OPTIMIZING을 그리는지).
if ( IsTesting ()|| IsOptimization ())флаг_Канады_не_рисовать_obj=true; //проверяем надо ли рисовать (в ините ему место через статик переменную)
if (!флаг_Канады_не_рисовать_obj){ //запрет отрисовки объектов ели оптимизация или тестирование
ObjectCreate (........................);
}
"Instrument"(_OrderSymbol) 매개변수를 사용하여 EA가 파일에 반복을 쓰지 못하도록 하는 방법을 알려주세요. https://forum.mql4.com/en/5814 배열에서 반복이 제거되는 방법을 포럼에서 보았지만 내 상황에 적용하는 방법을 알지 못했습니다. 그리고 반복하면 한 사이클에서도 200개의 동일한 줄을 파일에 찍기 시작합니다.
주문을 열기 전에 첫 번째 옵션을 두는 것이 더 좋습니다(OrderSend)
이러한 모든 조건이 즉시 차례로 따르지 않을 수 있으므로(아마도 1-2-3시간 후에) 표시기 값이 1.0000에 도달하는 즉시 이 조건이 매 틱마다 더 이상 확인되지 않고 다음 시간까지 기다려야 합니다. 하나의 막대가 하락과 함께 닫히고 그 후 이 2가지 조건은 매 틱마다 확인되지 않고 지표 값이 0.9980 이하가 될 때까지 기다립니다. 모든 조건이 충족되면 400p의 손절매로 0.1랏을 판매하는 시장 주문을 엽니다. 400p 이익을 취하십시오.
일반적으로 모든 것이 정상이지만 지표가 반환하는 값에 세심한 주의를 기울일 것입니다.
일반적으로 모든 것이 정상이지만 지표가 반환하는 값에 세심한 주의를 기울일 것입니다.
값이 1.0000에 도달하면 각 눈금 에 "지표 값 >= 1.0000" 이라는 메시지가 표시되었습니다.경고 표시기 값을 통해 실시간 모드에서 시도했지만 메시지가 정상적으로 표시되었습니다.
표시기의 경보 값을 통해 실시간 모드에서 시도했지만 메시지가 정상적으로 표시되었습니다.
그리고 테스터가 좋아하지 않는 것은 경고를 추가하고 로그를 살펴봐야 합니다.
그럼 코드가 맞나요?
이것은 무엇을 의미 하는가?
2011.12.06 01:07:55 HMR MULTI 지표 EURUSD,M15: 제거됨
2011.12.06 01:07:57 TestGenerator: 일치하지 않는 데이터 오류(2011.12.01 00:00에서 볼륨 제한 603 초과)
2011.12.06 01:07:57 2011.12.01 00:00 HMR MULTI 표시자 EURUSD,M15: ObjectCreate 함수 에 대해 알 수 없는 하위 창 번호 -1
그리고 이것은 무엇을 의미합니까?
2011.12.06 01:07:55 HMR MULTI 지표 EURUSD,M15: 제거됨
2011.12.06 01:07:57 TestGenerator: 일치하지 않는 데이터 오류(2011.12.01 00:00에서 볼륨 제한 603 초과)
2011.12.06 01:07:57 2011.12.01 00:00 HMR MULTI 표시자 EURUSD,M15: ObjectCreate 함수에 대해 알 수 없는 하위 창 번호 -1
... 표시기.
빈 어드바이저로 "포크 포크" 방법을 시도하십시오.
ObjectCreate가 하위 창을 찾는 표시기를 확인하십시오(또는 왜 IF TESTING 또는 OPTIMIZING을 그리는지).
즉, 매개변수를 전달하지 않으면 다음을 수행합니다.
답변 감사합니다!
안녕하세요!
"Instrument"(_OrderSymbol) 매개변수를 사용하여 EA가 파일에 반복을 쓰지 못하도록 하는 방법을 알려주세요. https://forum.mql4.com/en/5814 배열에서 반복이 제거되는 방법을 포럼에서 보았지만 내 상황에 적용하는 방법을 알지 못했습니다. 그리고 반복하면 한 사이클에서도 200개의 동일한 줄을 파일에 찍기 시작합니다.