Испытываю трудности с отправкой заказов.

 

Я продолжаю получать ошибку "invalid volume", баланс счета 10 000 и размер лота 0.07.

Вот мой код, я думаю, что дело может быть не в объеме.

MqlTradeResult StageOneBuyRes={0};
MqlTradeRequest StageOneBuy={0};

StageOneBuy.action=TRADE_ACTION_DEAL;  
StageOneBuy.magic=MagicNumber;  
StageOneBuy.symbol=_Symbol;            // symbol
StageOneBuy.volume=Lot;
StageOneBuy.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
StageOneBuy.sl=0;                  // Stop Loss is not specified
StageOneBuy.tp=0;                 // Take Profit is not specified 
StageOneBuy.deviation =7;  
StageOneBuy.type=ORDER_TYPE_BUY; // order type
StageOneBuy.type_filling = ORDER_FILLING_FOK;
StageOneBuy.comment = "test";
 

MqlTradeResult StageOneSellRes={1};
MqlTradeRequest StageOneSell={1};

StageOneSell.action=TRADE_ACTION_DEAL;  
StageOneSell.magic=MagicNumber;  
StageOneSell.symbol=_Symbol;            // symbol
StageOneSell.volume=Lot;
StageOneSell.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
StageOneSell.sl=0;                  // Stop Loss is not specified
StageOneSell.tp=0;                 // Take Profit is not specified 
StageOneSell.deviation =7;  
StageOneSell.type=ORDER_TYPE_SELL; // order type
StageOneSell.type_filling = ORDER_FILLING_FOK;
StageOneSell.comment = "test";
 
MetaNt:

Я продолжаю получать ошибку "invalid volume", баланс счета 10 000 и размер лота 0.07.

Вот мой код, я думаю, что дело может быть не в объеме.

Какой минимальный объем разрешен вашим брокером для этого символа?
 
angevoyageur:
Какой минимальный объем разрешен вашим брокером для этого символа?
0.01.
 
MetaNt:

Я продолжаю получать ошибку "invalid volume", баланс счета 10 000 и размер лота 0.07.

Вот мой код, я думаю, что дело может быть не в объеме.

У меня была похожая проблема с моим советником (получал ту же ошибку). Торговый объем был меньше минимально допустимого размера торговли моего брокера или размер инкремента/шага был слишком мал.

(Проверьте минимальный размер объема у вашего брокера, возможно, минимальный размер торговли или размер инкремента/шага больше, чем ваш 0.07) "уже сделано".

Имеет ли переменная "Lot" тип double?

 
snelle_moda:

У меня была похожая проблема с моим советником (получал ту же ошибку). Торговый объем был меньше минимально допустимого торгового размера у моего брокера или размер прироста/шага был слишком мал.

Проверьте минимальный размер объема у вашего брокера, возможно, минимальный размер торговли или размер прироста/шага больше, чем ваши 0,07.

Является ли переменная "Lot" двойного типа?

Она двойного типа, я не задавал инкремент.

Ранее я пытался использовать 1 в качестве значения Lot ордера, чтобы проверить, будет ли это работать, но ошибка сохранилась, теперь я попробую использовать 10.

 
Это не сработало.
 

Использовать

ZeroMemory(StageOneBuy);

ZeroMemory(StageOneSell);


Перед заполнением заявки и отправкой заказа.

 
snelle_moda:

Использовать

ZeroMemory(StageOneBuy);

ZeroMemory(StageOneSell);


Перед заполнением заявки и отправкой заказа.

Это уже сделано с помощью {0}. Точно так же.
 
angevoyageur:
Это уже сделано с {0}. Точно так же.
Изначально оба были 0, но я изменил продающий на 1, чтобы посмотреть, решит ли это проблему, вот почему в коде, который я разместил, написано 1.
 
MetaNt:
Изначально оба значения были равны 0, но я изменил значение параметра sell на 1, чтобы проверить, решит ли это проблему, поэтому в коде, который я разместил, указано 1.
Когда я запустил print, чтобы получить код ошибки, я получил код ошибки 4756, это ошибка неправильного ввода, так что это не очень помогло.
 
Есть предложения?
Причина обращения: