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);
}
//+------------------------------------------------------------------+
怎么了?
FunctionOrderSend( 字符串, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
参数: 符号 - 被交易的金融工具的名称。
cmd - 贸易操作。可以是任何一个交易操作值。
量--地段的数量。
价格 - 开盘价。slippage - 市场订单(买入或卖出订单)的最大允许价格偏差。
Stoploss - 达到损失时的平仓价格(如果没有损失则为0)。
Takeeprofit - 达到盈利水平时的平仓价格(如果没有盈利水平则为0)。
comment - 订单评论文本。评论的最后部分可以由交易服务器改变。
magic - 订单的magic number。可作为用户定义的标识符。
expiration - 待定订单的到期时间。
arrow_color - 图表上开口箭头的颜色。如果缺少该参数或其值为CLR_NONE,图表上就不会显示开口箭头。
你把它放在哪里?- 你有一些片段,而不是OrderSend
那么这里的Ask*Point 的计算结果是什么呢。
???这里是完整的代码。
为了进行快速测试,我设置了Delta=2
外来的int Delta=2。
也许你可以实现这一点来理解错误。
由于某些原因,它对我不起作用......
以下是完整的代码。
事实上,买入和卖出的OrderSend的写法略有不同。因为我们以卖价买入,以买价卖出!也是以站为单位关门...和你在一起--所有的价格都是一样的......。
此外,lot=1打算在这里工作。你的存款是否与这个规模相符?日志上又是怎么说的--为什么不工作了?
你不知道买入价和卖出价之间的区别,你不明白空头和多头之间的区别。你不知道什么是止损和止盈。你不明白你已经写了什么。你正试图通过直觉来编码。谁可以帮助你???? 学习基本知识。所有问题都得到了回答。我不认为引用教科书有什么意义。
由于某些原因,它对我不起作用......
为了进行快速测试,我设置了Delta=2
外来的int Delta=2。
为了什么?你知道如何使用测试器吗?
我曾经认识一个人。他已经做了一年的外汇交易,他仍然认为多头头寸就是在市场上停留很长时间。而空头头寸是一种,比如说,一个小人物的头寸。
你怎么看?