int start()
{
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //Цена упала больше Delta пунктов
{
OrderSend(Symbol(),OP_BUY,Ask,5,0,Ask+TakeProfit*Point,0);
}
if (iOpen(NULL,5,0)-Bid<Delta*Point) //Цена выросла больше Delta пунктов
{
OrderSend(Symbol(),OP_SELL,Ask,5,0,Ask+TakeProfit*Point,0);
}
//----
return(0);
}
OrderSend(Symbol(),OP_SELL,Ask,5,0,Ask+TakeProfit*Point,0);
Эту строку вытащил из другого эксперта. А что означают в ней цифры 5 и 0?
//+------------------------------------------------------------------+
bool IsCondition()
{
bool result=true;
string field=" ";
string msg;
string title="Ошибка"; if (AccountNumber()>0)title=AccountNumber()+": "+title;
if (!IsConnected())
{
msg=msg+"Связь с сервером отсутствует"+field;
result=false;
}
if (!IsTradeAllowed())
{
if (!result) msg=msg+"\n";
msg=msg+"Торговля запрещена"+field;
result=false;
}
if (!result) MessageBox(msg,title,MB_OK|MB_ICONERROR);
return(result);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void ShowError()
{
string description;
int err=GetLastError();
switch(err)
{
case 0: return;
case 1: description="Нет ошибки, но результат неизвестен"; break;
case 2: description="Общая ошибка"; break;
case 3: description="Неправильные параметры"; break;
case 4: description="Торговый сервер занят"; break;
case 5: description="Старая версия клиентского терминала"; break;
case 6: description="Нет связи с торговым сервером"; break;
case 7: description="Недостаточно прав"; break;
case 8: description="Слишком частые запросы"; break;
case 9: description="Недопустимая операция нарушающая функционирование сервера"; break;
case 64: description="Счет заблокирован"; break;
case 65: description="Неправильный номер счета"; break;
case 128: description="Истек срок ожидания совершения сделки"; break;
case 129: description="Неправильная цена"; break;
case 130: description="Неправильные стопы"; break;
case 131: description="Неправильный объем"; break;
case 132: description="Рынок закрыт"; break;
case 133: description="Торговля запрещена"; break;
case 134: description="Недостаточно денег для совершения операции"; break;
case 135: description="Цена изменилась"; break;
case 136: description="Нет цен"; break;
case 137: description="Брокер занят"; break;
case 138: description="Новые цены"; break;
case 139: description="Ордер заблокирован и уже обрабатывается"; break;
case 140: description="Разрешена только покупка"; break;
case 141: description="Слишком много запросов"; break;
case 145: description="Модификация запрещена, так как ордер слишком близок к рынку"; break;
case 146: description="Подсистема торговли занята"; break;
case 147: description="Использование даты истечения ордера запрещено брокером"; break;
default : description="Неизвестная ошибка"; break;
}
string field=" ";
string msg="Ошибка #"+err+" "+description+field;
string title="Ошибка"; if (AccountNumber()>0)title=AccountNumber()+": "+title;
MessageBox(msg,title,MB_OK|MB_ICONERROR);
}
// End
//+------------------------------------------------------------------+
if (iOpen(NULL,5,0)-Bid>Delta*Point) //Цена упала больше Delta пунктов
{
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"My order #",MagicNumber,0,Green);
}
if (iOpen(NULL,5,0)-Bid<Delta*Point) //Цена выросла больше Delta пунктов
{
ticket=OrderSend(Symbol(),OP_SELL,1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"My order #",MagicNumber,0,Green);
}
//----
return(0);
}
//+------------------------------------------------------------------+
일반적으로 매수와 매도를 위한 OrderSend는 약간 다르게 작성됩니다. 매도호가에 매수하고 매도호가에 매도하기 때문입니다! 그리고 발자취도 닫습니다 ... 당신과 함께 - 모든 것이 같은 가격에 있습니다 ... 게다가, 그것은 lot = 1로 작업을 제공합니다. 이 금액에 해당하는 보증금이 있습니까? 그리고 로그에 무엇이 기록되어 있습니까? 왜 작동하지 않습니까?
당신은 Bid와 Ask의 차이점을 모르고, 숏 포지션과 롱 포지션의 차이를 이해하지 못합니다. 손절매와 이익실현이 무엇인지 모릅니다. 당신은 당신이 이미 쓴 것을 이해하지 못합니다. 무작위로 코딩하려고 합니다. 누가 당신을 도울 수 있습니까???? 매트를 배우십시오. 부분. 모든 질문에 대한 답변이 완료되었습니다. 나는 당신의 교과서를 인용하는 요점을 이해하지 못합니다.
뭐가 문제 야?
OrderSend 함수(문자열 기호, int cmd, 이중 볼륨, 이중 가격, int 미끄러짐, 이중 손절매, 이중 이익 실현, 문자열 주석=NULL, int magic=0, datetime 만료=0, color arrow_color=CLR_NONE)
매개변수: 기호 - 거래 작업이 수행되는 금융 상품의 이름.
cmd - 거래 작업. 모든 거래 작업 값이 될 수 있습니다.
볼륨 - 로트 수.
가격 - 시작 가격. 슬리피지 - 시장 주문(구매 또는 판매 주문)에 대한 최대 허용 가격 편차.
stoploss - 손실 수준에 도달했을 때의 포지션 종가(손실 수준이 없는 경우 0).
takeprofit - 이익 수준에 도달했을 때 포지션 종가입니다(이익 수준이 없는 경우 0).
comment - 주석 텍스트를 주문합니다. 댓글의 마지막 부분은 거래 서버에 의해 변경될 수 있습니다.
magic - 주문의 매직 번호입니다. 사용자 정의 식별자로 사용할 수 있습니다.
만료 - 보류 중인 주문의 만료 날짜입니다.
arrow_color - 차트의 시작 화살표 색상입니다. 매개변수가 없거나 해당 값이 CLR_NONE과 같으면 시작 화살표가 차트에 표시되지 않습니다.
당신은 그것을 어디에 가지고 있습니까? - OrderSend 대신 어떤 종류의 스텁이 있습니다.
그리고 Ask*Point 계산의 결과는 다음과 같습니다.
???전체 코드는 다음과 같습니다.
빠른 테스트를 위해 Delta=2로 설정했습니다.
extern int Delta=2;
아마도 어떻게 든 이것을 구현하여 오류를 이해할 수 있습니다.
어쩐지 저한테 안맞네요....
전체 코드는 다음과 같습니다.
일반적으로 매수와 매도를 위한 OrderSend는 약간 다르게 작성됩니다. 매도호가에 매수하고 매도호가에 매도하기 때문입니다! 그리고 발자취도 닫습니다 ... 당신과 함께 - 모든 것이 같은 가격에 있습니다 ...
게다가, 그것은 lot = 1로 작업을 제공합니다. 이 금액에 해당하는 보증금이 있습니까? 그리고 로그에 무엇이 기록되어 있습니까? 왜 작동하지 않습니까?
당신은 Bid와 Ask의 차이점을 모르고, 숏 포지션과 롱 포지션의 차이를 이해하지 못합니다. 손절매와 이익실현이 무엇인지 모릅니다. 당신은 당신이 이미 쓴 것을 이해하지 못합니다. 무작위로 코딩하려고 합니다. 누가 당신을 도울 수 있습니까???? 매트를 배우십시오. 부분. 모든 질문에 대한 답변이 완료되었습니다. 나는 당신의 교과서를 인용하는 요점을 이해하지 못합니다.
어쩐지 저한테 안맞네요....
빠른 테스트를 위해 Delta=2로 설정했습니다.
extern int Delta=2;
무엇 때문에? 테스터 사용법을 알고 있습니까?
나는 남자 친구가 있었다. 그는 1년 동안 외환 거래를 했지만 여전히 롱 포지션은 오랫동안 시장에 있었던 포지션이라고 생각했습니다. 그리고 짧은 것은 하나입니다 - "글쎄, 삐삐처럼, 헐 ..."!
그리고 어떻게 생각하세요?