Yedelkin : Для каждого вида торгового запроса предусмотрены обязательные поля. Они должны быть заполнены. "Открытие позиции" или "Закрытие позиции" - это всего лишь результат выполнения конкретного торгового запроса, правила заполнения которого - одни и те же. Т.е. берите свой работающий вариант запроса "на открытие" и меняйте тип ордера. Ненужные обязательные поля заполняйте нулями.
세르게예프 :
당신은 이미 답변을 받았습니다
고맙습니다!
또 다른 질문이 생겼습니다. 아래 요청이 전송되고 포지션이 열렸지만 스탑과 이익이 발생하지 않았습니다. 이미 다른 방식으로 그들을 비틀었지만 아무 것도 도움이되지 않았습니다. 뭐가 문제야, 내가 뭘 잘못하고 있니?
MqlTick latest_price; // Будет использоваться для текущих котировокif (! SymbolInfoTick ( _Symbol ,latest_price)) return ; // получить текущее значение котировки в структуру типа MqlTick
...
if (uBuy && opSell== false )
{
if (opBuy) return ; // при наличии позиции не добавлять к открытой позиции на покупку
mrequest.action = TRADE_ACTION_DEAL ; // немедленное исполнение
mrequest.price = NormalizeDouble (latest_price.ask, _Digits ); // последняя цена ask
mrequest.sl = NormalizeDouble (latest_price.ask - StopLoss* _Point , _Digits ); // Stop Loss
mrequest.tp = NormalizeDouble (latest_price.ask + TakeProfit* _Point , _Digits ); // Take Profit
mrequest.symbol = _Symbol ; // символ
mrequest.volume = WorkLot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_BUY ; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK ; // тип исполнения ордера - все или ничего
mrequest.deviation=Slippage; // проскальзывание от текущей ценыOrderSend (mrequest,mresult); // отсылаем ордерif (mresult.retcode== 10009 || mresult.retcode== 10008 ) //запрос выполнен или ордер успешно помещен
{
Alert ( "Ордер Buy успешно помещен, тикет ордера #:" ,mresult.order, "!!" );
}
else
{
return ;
}
}
double summ= 0 ;//переменная, в которую все суммируется
int w= 0 ;//счетчик 3 удачных сумирований
int count_for_buf= 0 ;//Счетчик переходов по буферу ZigZag
while (w<= 3 )
{
summ=summ+ZigzagBuffer[rates_total-count_for_buf];
count_for_buf++;
if (ZigzagBuffer[rates_total-count_for_buf]!= 0 )//Увеличиваем счетчик, если используемое значение индикатора не равно нулю
{
w++;
}
}
닫기를 제외한 모든 옵션이 나열됩니다. 그게 내가 묻는 이유야
당신은 이미 답변을 받았습니다
"포지션 청산"은 거래 요청 실행의 결과일 뿐이며 채우기 규칙은 동일합니다.
저것들. "개방" 요청을 받고 주문 유형을 변경합니다.
필수 필드를 0으로 채우십시오.
Yedelkin :
세르게예프 :Для каждого вида торгового запроса предусмотрены обязательные поля. Они должны быть заполнены. "Открытие позиции" или "Закрытие позиции" - это всего лишь результат выполнения конкретного торгового запроса, правила заполнения которого - одни и те же. Т.е. берите свой работающий вариант запроса "на открытие" и меняйте тип ордера. Ненужные обязательные поля заполняйте нулями.
당신은 이미 답변을 받았습니다
고맙습니다!
또 다른 질문이 생겼습니다. 아래 요청이 전송되고 포지션이 열렸지만 스탑과 이익이 발생하지 않았습니다. 이미 다른 방식으로 그들을 비틀었지만 아무 것도 도움이되지 않았습니다. 뭐가 문제야, 내가 뭘 잘못하고 있니?
마지막 3개의 ZigZag 값을 추가하는 방법은 무엇입니까?
그래서 어떤 이유로 멈추거나 다른 일이 발생합니다."포지션 개설" 거래 요청 에는 몇 가지 채우기 옵션이 있다는 것을 기억하십니까? 이러한 옵션 중 일부는 sl / tp 설정을 제공하고 다른 옵션은 제공하지 않습니다. 즉, 브로커의 거래 모드는 무엇입니까?
"포지션 개설" 거래 요청 에는 몇 가지 채우기 옵션이 있다는 것을 기억하십니까? 이러한 옵션 중 일부는 sl / tp 설정을 제공하고 나머지는 그렇지 않습니다. 즉, 브로커의 거래 모드는 무엇입니까?
브로커 알파리. 수동 모드에서는 교환 실행에서 새 주문만 배치됩니다. 시장에 진입하는 다른 방법은 없습니다. Exchange Execution 요청이 의미하는 것임을 이해합니다. 덕분에 대충 알았습니다. 컴파일러가 다음 줄에서 맹세하는 이유를 말해 줄 수 있습니까?
if(CopyBuffer(ema,0,0,3,emaVal)<0) 반환; // 지시자 버퍼의 새로운 값을 배열에 복사
그리고
표시기 릴리스(ema);
"형식 변환으로 인한 데이터 손실 가능성" 경고를 씁니다. 어젯밤에 고칠 수 없기 때문에 여기에서 무엇이 잘못되었는지 모르겠습니다.
if(CopyBuffer(ema,0,0,3,emaVal)<0) 반환; // 지시자 버퍼의 새로운 값을 배열에 복사
그리고
표시기 릴리스(ema);
"형식 변환으로 인한 데이터 손실 가능성" 경고를 씁니다. 어제 저녁부터 고칠 수 없기 때문에 여기에서 무엇이 잘못되었는지 모르겠습니다.
ema 변수의 유형은 무엇입니까?
분명한. 표시기 핸들을 저장하기 위한 변수 유형을 확인하고 그에 따라 조정하십시오.
마지막 3개의 ZigZag 값을 추가하는 방법은 무엇입니까?
그래서 어떤 이유로 멈추거나 다른 일이 발생합니다.내 버전을 제공하겠습니다.